diff --git a/tests/data/DISABLED b/tests/data/DISABLED
new file mode 100644
index 0000000000000000000000000000000000000000..6259e0b7ba92a6bb32032a97ff25332e48ed21cd
--- /dev/null
+++ b/tests/data/DISABLED
@@ -0,0 +1,7 @@
+# This file can be used to specify test cases that should not run when all
+# test cases are run by runtests.pl. Just add the plain test case numbers, one
+# per line.
+# Comments starting with '#' letters are fine.
+230
+231
+232
diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am
index 4c1bdb120bec546d586ad06e9618fd73c045cbaf..64218bac1c7a2973018e2406379db99a64e00dc9 100644
--- a/tests/data/Makefile.am
+++ b/tests/data/Makefile.am
@@ -35,5 +35,5 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46	   \
  test256 test257 test258 test259 test260 test261 test262 test263 test264   \
  test265 test266 test267 test268 test269 test270 test271 test272 test273   \
  test274 test275 test524 test525 test276 test277 test526 test527 test528   \
- test530
+ test530 DISABLED
 
diff --git a/tests/runtests.pl b/tests/runtests.pl
index 55438e9b8dc12013f8bba656d7c04656cf37a744..121a4d8444584f5deacc8126828c8f1dde9c5e13 100755
--- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -2123,6 +2123,18 @@ if ( $TESTCASES eq "all") {
     my @cmds = grep { /^test([0-9]+)$/ && -f "$TESTDIR/$_" } readdir(DIR);
     closedir DIR;
 
+    my %dis;
+    open(D, "$TESTDIR/DISABLED");
+    while(<D>) {
+        if(/^ *\#/) {
+            # allow comments
+            next;
+        }
+        if($_ =~ /(\d+)/) {
+            $dis{$1}=$1; # disable this test number
+        }
+    }
+
     $TESTCASES=""; # start with no test cases
 
     # cut off everything but the digits
@@ -2131,6 +2143,11 @@ if ( $TESTCASES eq "all") {
     }
     # the the numbers from low to high
     for(sort { $a <=> $b } @cmds) {
+        if($dis{$_}) {
+            # skip disabled test cases
+            print STDERR "runtests.pl: disabling test $_\n";
+            next;
+        }
         $TESTCASES .= " $_";
     }
 }