diff --git a/scripts/run-tests.sh b/scripts/run-tests.sh
index 8f2c7238ae0c18ce9489b6c680bacf15a8cfb046..15a70371449ba9d9326518d06c912fdf41847dcb 100755
--- a/scripts/run-tests.sh
+++ b/scripts/run-tests.sh
@@ -114,13 +114,16 @@ function simpletest_script_help() {
 
   --concurrency [num]
 
-              Run tests in parallel, up to [num] tests at a time.
-              This requires the Process Control Extension (PCNTL) to be compiled in PHP,
-              not supported under Windows.
+              Run tests in parallel, up to [num] tests at a time. This requires
+              the Process Control Extension (PCNTL) to be compiled in PHP, not 
+              supported under Windows.
 
   --all       Run all available tests.
 
   --class     Run tests identified by specific class names, instead of group names.
+  
+  --file      Run tests identifiled by specific file names, instead of group names.
+              Specify the path and the extension (i.e. 'modules/user/user.test').
 
   --color     Output the rusults with color highlighting.
 
@@ -160,6 +163,7 @@ function simpletest_script_parse_args() {
     'concurrency' => 1,
     'all' => FALSE,
     'class' => FALSE,
+    'file' => FALSE,
     'color' => FALSE,
     'verbose' => FALSE,
     'test_names' => array(),
@@ -353,7 +357,7 @@ function simpletest_script_get_test_list() {
     $test_list = array_keys($all_tests);
   }
   else {
-    if ($args['class_names']) {
+    if ($args['class']) {
       // Check for valid class names.
       foreach ($args['test_names'] as $class_name) {
         if (isset($all_tests[$class_name])) {
@@ -361,6 +365,21 @@ function simpletest_script_get_test_list() {
         }
       }
     }
+    else if ($args['file']) {
+      $files = array();
+      foreach ($args['test_names'] as $file) {
+        $files[realpath($file)] = 1;
+      }
+	  
+      // Check for valid class names.
+      foreach ($all_tests as $class_name => $instance) {
+        $refclass = new ReflectionClass($class_name);
+        $file = $refclass->getFileName();
+        if (isset($files[$file])) {
+          $test_list[] = $class_name;
+        }
+      }
+    }
     else {
       // Check for valid group names and get all valid classes in group.
       foreach ($args['test_names'] as $group_name) {