diff --git a/tests/httpsserver.pl b/tests/httpsserver.pl
index d255d67e56aa9861f6ff5372d083fe7333c942c8..19e4061eca54a409a14f827e6f6b1883aca88bc6 100644
--- a/tests/httpsserver.pl
+++ b/tests/httpsserver.pl
@@ -25,6 +25,12 @@ my $verbose=0; # set to 1 for debugging
 
 my $port = 8433; # just our default, weird enough
 my $target_port = 8999; # test http-server port
+
+my $path = `pwd`;
+chomp $path;
+
+my $srcdir=$path;
+
 do {
     if($ARGV[0] eq "-v") {
         $verbose=1;
@@ -36,16 +42,17 @@ do {
         $target_port=$ARGV[1];
         shift @ARGV;
     }
+    elsif($ARGV[0] eq "-d") {
+        $srcdir=$ARGV[1];
+        shift @ARGV;
+    }
     elsif($ARGV[0] =~ /^(\d+)$/) {
         $port = $1;
     }
 } while(shift @ARGV);
 
-my $path = `pwd`;
-chomp $path;
-
 my $conffile="$path/stunnel.conf";	# stunnel configuration data
-my $certfile="$path/stunnel.pem";	# stunnel server certificate
+my $certfile="$srcdir/stunnel.pem";	# stunnel server certificate
 my $pidfile="$path/.https.pid";		# stunnel process pid file
 
 open(CONF, ">$conffile") || return 1;
@@ -62,7 +69,7 @@ print CONF "
 	connect = $target_port
 ";
 close CONF; 
-system("chmod go-rwx $conffile $path/stunnel.pem");	# secure permissions
+system("chmod go-rwx $conffile $certfile");	# secure permissions
 
 		# works only with stunnel versions < 4.00
 my $cmd="$stunnel -p $certfile -P $pidfile -d $port -r $target_port 2>/dev/null";
diff --git a/tests/runtests.pl b/tests/runtests.pl
index 46c90350f7b6b06e8cf913be91e91374e8c9e73d..1c8f761dc19df46acd026fc5e95a81df9103e785 100755
--- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -222,7 +222,7 @@ sub runhttpsserver {
     }
 
     my $flag=$debugprotocol?"-v ":"";
-    my $cmd="$perl $srcdir/httpsserver.pl $flag -r $HOSTPORT $HTTPSPORT &";
+    my $cmd="$perl $srcdir/httpsserver.pl $flag -d $srcdir -r $HOSTPORT $HTTPSPORT &";
     system($cmd);
     if($verbose) {
         print "CMD: $cmd\n";