diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index d0ea5e2..fd6cafc 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -406,9 +406,14 @@
                 stdtests.remove(arg)
         nottests[:0] = args
         args = []
-    tests = tests or args or findtests(testdir, stdtests, nottests)
+    alltests = findtests(testdir, stdtests, nottests)
+    tests = tests or args or alltests
     if single:
         tests = tests[:1]
+        try:
+            next_single_test = alltests[alltests.index(tests[0])+1]
+        except IndexError:
+            next_single_test = None
     if randomize:
         random.seed(random_seed)
         print "Using random seed", random_seed
@@ -613,16 +618,9 @@
                 raise
 
     if single:
-        alltests = findtests(testdir, stdtests, nottests)
-        for i in range(len(alltests)):
-            if tests[0] == alltests[i]:
-                if i == len(alltests) - 1:
-                    os.unlink(filename)
-                else:
-                    fp = open(filename, 'w')
-                    fp.write(alltests[i+1] + '\n')
-                    fp.close()
-                break
+        if next_single_test:
+            with open(filename, 'w') as fp:
+                fp.write(next_single_test + '\n')
         else:
             os.unlink(filename)
 
