diff --git a/PCbuild/rmpyc.py b/PCbuild/rmpyc.py
new file mode 100644
index 0000000..019c69b
--- /dev/null
+++ b/PCbuild/rmpyc.py
@@ -0,0 +1,24 @@
+# Remove all the .pyc and .pyo files under ../Lib.
+
+def deltree(root):
+    import os
+    def rm(path):
+        os.unlink(path)
+    npyc = npyo = 0
+    dirs = [root]
+    while dirs:
+        dir = dirs.pop()
+        for short in os.listdir(dir):
+            full = os.path.join(dir, short)
+            if os.path.isdir(full):
+                dirs.append(full)
+            elif short.endswith(".pyc"):
+                npyc += 1
+                rm(full)
+            elif short.endswith(".pyo"):
+                npyo += 1
+                rm(full)
+    return npyc, npyo
+
+npyc, npyo = deltree("../Lib")
+print npyc, ".pyc deleted,", npyo, ".pyo deleted"
diff --git a/PCbuild/rt.bat b/PCbuild/rt.bat
index 4a4c97e..1d2829f 100755
--- a/PCbuild/rt.bat
+++ b/PCbuild/rt.bat
@@ -21,10 +21,7 @@
 @if "%1"=="-d" goto Again
 @if "%_qmode%"=="yes" goto Qmode
 @echo Deleting .pyc/.pyo files ...
-@del ..\Lib\*.pyc
-@del ..\Lib\*.pyo
-@del ..\Lib\test\*.pyc
-@del ..\Lib\test\*.pyo
+@%_exe% rmpyc.py
 %_exe% %_dashO% ../lib/test/regrtest.py %1 %2 %3 %4 %5 %6 %7 %8 %9
 @echo About to run again without deleting .pyc/.pyo first:
 @pause
