--- runtests.pl.orig	Tue Jan  8 04:32:42 2002
+++ runtests.pl	Wed Jan 23 14:17:52 2002
@@ -693,11 +693,11 @@ my %run;
 # all servers need to run then!
 
 sub serverfortest {
-    my ($testnum)=@_;
+    my ($testnum,$forcerestart)=@_;
 
     if($testnum< 100) {
         # 0 - 99 is for HTTP
-        if(!$run{'http'}) {
+        if($forcerestart || !$run{'http'}) {
             runhttpserver($verbose);
             $run{'http'}=$HTTPPIDFILE;
         }
@@ -887,10 +887,12 @@ my $testnum;
 my $ok=0;
 my $total=0;
 my $skipped=0;
+my $redoing=0;
+
 
 foreach $testnum (split(" ", $TESTCASES)) {
 
-    my $serverproblem = serverfortest($testnum);
+    my $serverproblem = serverfortest($testnum,0);
 
     if($serverproblem) {
         # there's a problem with the server, don't run
@@ -900,10 +902,18 @@ foreach $testnum (split(" ", $TESTCASES)
     }
 
     my $error = singletest($testnum);
-    if(-1 != $error) {
+    if(-1 != $error && !$redoing) {
         # valid test case number
         $total++;
     }
+    if($error>0 && !$redoing) {
+        # try it one more time, to check for Cygwin wierdness...
+        $redoing=1;
+	print " ... trying one more time ... \n";
+	$serverproblem = serverfortest($testnum,1);
+	redo;
+    }
+    $redoing=0;
     if($error>0) {
         $failed.= "$testnum ";
         if(!$anyway) {

