diff --git a/tests/run_make_tests.pl b/tests/run_make_tests.pl
index 7b613070..f64ff8f0 100644
--- a/tests/run_make_tests.pl
+++ b/tests/run_make_tests.pl
@@ -269,7 +269,7 @@ sub run_make_test
     defined $old_makefile
       or die "run_make_test(undef) invoked before run_make_test('...')\n";
     $makefile = $old_makefile;
-  } else {
+  } elsif ($makestring) {
     if (! defined($makefile)) {
       $makefile = &get_tmpfile();
     }
diff --git a/tests/scripts/features/include b/tests/scripts/features/include
index 00c128aa..14741609 100644
--- a/tests/scripts/features/include
+++ b/tests/scripts/features/include
@@ -216,7 +216,7 @@ rmfiles('inc1', 'inc2', 'hellod/inc1', 'hellod/inc2');
 rmdir('hellod');
 
 # No target gets correct error
-run_make_test('', '', '#MAKE#: *** No targets.  Stop.', 512);
+run_make_test("\n", '', '#MAKE#: *** No targets.  Stop.', 512);
 
 # No target in included file either, still gets correct error.
 touch('inc1.mk');
diff --git a/tests/scripts/misc/close_stdout b/tests/scripts/misc/close_stdout
index b16ea8da..c8c839e7 100644
--- a/tests/scripts/misc/close_stdout
+++ b/tests/scripts/misc/close_stdout
@@ -4,6 +4,6 @@ $description = "Make sure make exits with an error if stdout is full.";
 
 -e '/dev/full' or return -1;
 
-run_make_test('', '-v > /dev/full', '/^#MAKE#: write error/', 256);
+run_make_test("\n", '-v > /dev/full', '/^#MAKE#: write error/', 256);
 
 1;
diff --git a/tests/scripts/options/dash-r b/tests/scripts/options/dash-r
index 7ff29405..20dff099 100644
--- a/tests/scripts/options/dash-r
+++ b/tests/scripts/options/dash-r
@@ -7,7 +7,7 @@ $details = "DETAILS";
 touch('xxx.c');
 
 # Simple check
-run_make_test('', '-r COMPILE.c=echo xxx.o',
+run_make_test("\n", '-r COMPILE.c=echo xxx.o',
               "#MAKE#: *** No rule to make target 'xxx.o'.  Stop.", 512);
 
 # Make sure we can set it from within the makefile too