diff --git a/Tools/buildbot/build.bat b/Tools/buildbot/build.bat
index e3b77be..e96323c 100644
--- a/Tools/buildbot/build.bat
+++ b/Tools/buildbot/build.bat
@@ -1,4 +1,5 @@
 @rem Used by the buildbot "compile" step.
 cmd /c Tools\buildbot\external.bat
 call "%VS71COMNTOOLS%vsvars32.bat"
+cmd /q/c Tools\buildbot\kill_python.bat
 devenv.com /useenv /build Debug PCbuild\pcbuild.sln
diff --git a/Tools/buildbot/kill_python.bat b/Tools/buildbot/kill_python.bat
new file mode 100644
index 0000000..d78b6d4
--- /dev/null
+++ b/Tools/buildbot/kill_python.bat
@@ -0,0 +1,3 @@
+cd Tools\buildbot
+nmake /C /S /f kill_python.mak
+kill_python.exe
diff --git a/Tools/buildbot/kill_python.c b/Tools/buildbot/kill_python.c
new file mode 100644
index 0000000..46a14b7
--- /dev/null
+++ b/Tools/buildbot/kill_python.c
@@ -0,0 +1,56 @@
+/* This program looks for processes which have build\PCbuild\python.exe
+   in their path and terminates them. */
+#include <windows.h>
+#include <psapi.h>
+#include <stdio.h>
+
+int main()
+{
+	DWORD pids[1024], cbNeeded;
+	int i, num_processes;
+	if (!EnumProcesses(pids, sizeof(pids), &cbNeeded)) {
+		printf("EnumProcesses failed\n");
+		return 1;
+	}
+	num_processes = cbNeeded/sizeof(pids[0]);
+	for (i = 0; i < num_processes; i++) {
+		HANDLE hProcess;
+		char path[MAX_PATH];
+		HMODULE mods[1024];
+		int k, num_mods;
+		hProcess = OpenProcess(PROCESS_QUERY_INFORMATION 
+					| PROCESS_VM_READ 
+					|  PROCESS_TERMINATE ,
+					FALSE, pids[i]);
+		if (!hProcess)
+			/* process not accessible */
+			continue;
+		if (!EnumProcessModules(hProcess, mods, sizeof(mods), &cbNeeded)) {
+			/* For unknown reasons, this sometimes returns ERROR_PARTIAL_COPY;
+			   this apparently means we are not supposed to read the process. */
+			if (GetLastError() == ERROR_PARTIAL_COPY) {
+				CloseHandle(hProcess);
+				continue;
+			}
+			printf("EnumProcessModules failed: %d\n", GetLastError());
+			return 1;
+		}
+		if (!GetProcessImageFileName(hProcess, path, sizeof(path))) {
+			printf("GetProcessImageFileName failed\n");
+			return 1;
+		}
+
+		_strlwr(path);
+		/* printf("%s\n", path); */
+		if (strstr(path, "build\\pcbuild\\python_d.exe") != NULL) {
+			printf("Terminating %s (pid %d)\n", path, pids[i]);
+			if (!TerminateProcess(hProcess, 1)) {
+				printf("Termination failed: %d\n", GetLastError());
+				return 1;
+			}
+			return 0;
+		}
+
+		CloseHandle(hProcess);
+	}
+}
\ No newline at end of file
diff --git a/Tools/buildbot/kill_python.mak b/Tools/buildbot/kill_python.mak
new file mode 100644
index 0000000..6027d3f
--- /dev/null
+++ b/Tools/buildbot/kill_python.mak
@@ -0,0 +1,2 @@
+kill_python.exe:	kill_python.c
+		cl -nologo -o kill_python.exe kill_python.c psapi.lib
