diff --git a/tests/fork/test.T b/tests/fork/test.T
index 8feb3a8c7f2030a994e4690181946bbcce76ce0e..3c6b112044c03e90f181bd1f8adbb84af6549844 100644
--- a/tests/fork/test.T
+++ b/tests/fork/test.T
@@ -5,7 +5,7 @@ setTestOpts(compose(only_compiler_types(['ghc']),
 # Set up the hpc common variable(s).
 hpc = config.top + '/../utils/hpc/hpc'
 
-hpc_args = ['perl ../hpcrun.pl --clear --exeext=' + config.exeext + ' --hpc=' + hpc,'-fhpc'];
+hpc_prefix = 'perl ../hpcrun.pl --clear --exeext=' + config.exeext + ' --hpc=' + hpc;
 
-test('hpc_fork', normal, compile_and_run_with_prefix, hpc_args)
+test('hpc_fork', cmd_prefix(hpc_prefix), compile_and_run, ['-fhpc'])
 
diff --git a/tests/function/test.T b/tests/function/test.T
index 17bd89e8d3e323dfcdf6eb2860e53965fa7e26b8..a898393628e69b8616656b6e79fc48123c3a08e5 100644
--- a/tests/function/test.T
+++ b/tests/function/test.T
@@ -5,7 +5,7 @@ setTestOpts(compose(only_compiler_types(['ghc']),
 # Set up the hpc common variable(s).
 hpc = config.top + '/../utils/hpc/hpc'
 
-hpc_args = ['perl ../hpcrun.pl --clear --exeext=' + config.exeext + ' --hpc=' + hpc,'-fhpc'];
+hpc_prefix = 'perl ../hpcrun.pl --clear --exeext=' + config.exeext + ' --hpc=' + hpc;
 
-test('tough', normal, compile_and_run_with_prefix, hpc_args)
+test('tough', cmd_prefix(hpc_prefix), compile_and_run, ['-fhpc'])
 
diff --git a/tests/raytrace/test.T b/tests/raytrace/test.T
index 70e18f1774dd4dda95c368169767ced007fc316c..3ae9141e5a2f88876d30a45749b8f5f92f7992b4 100644
--- a/tests/raytrace/test.T
+++ b/tests/raytrace/test.T
@@ -3,11 +3,12 @@ setTestOpts(compose(only_compiler_types(['ghc']),
 			    skip_if_fast)))
 
 hpc = config.top + '/../utils/hpc/hpc';
+hpc_prefix = 'perl ../hpcrun.pl --clear --exeext=' + config.exeext + ' --hpc=' + hpc, 'Main'
 
 test('hpc_raytrace', \
-	skip_if_fast, \
-	multimod_compile_and_run_with_prefix, \
-	['perl ../hpcrun.pl --clear --exeext=' + config.exeext + ' --hpc=' + hpc, 'Main','-fhpc -package parsec'])
+	compose(skip_if_fast, cmd_prefix(hpc_prefix)), \
+	multimod_compile_and_run, \
+	['Main','-fhpc -package parsec'])
 
 runCmd("cd " + getTestDir() + " && tar xf tixs.tar")
 
diff --git a/tests/simple/test.T b/tests/simple/test.T
index 4775c36d9c0a3e40e97969246b85537aa8d0bcf8..f747f90d42ea7713baa830b8d02fc03c2abd9d40 100644
--- a/tests/simple/test.T
+++ b/tests/simple/test.T
@@ -5,9 +5,9 @@ setTestOpts(compose(only_compiler_types(['ghc']),
 # Set up the hpc common variable(s).
 hpc = config.top + '/../utils/hpc/hpc'
 
-hpc_args = ['perl ../hpcrun.pl --clear --exeext=' + config.exeext + ' --hpc=' + hpc,'-fhpc'];
+hpc_prefix = 'perl ../hpcrun.pl --clear --exeext=' + config.exeext + ' --hpc=' + hpc;
 
-test('hpc001', normal, compile_and_run_with_prefix, hpc_args)
+test('hpc001', cmd_prefix(hpc_prefix), compile_and_run, ['-fhpc'])
 
 # a prepackaged version of .hpc/*mix and hpc-sample.tix files.
 # This is created using 'make build-tix-tar', in this directory.