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/external.bat b/Tools/buildbot/external.bat
index 1b032ae..c6d252d 100644
--- a/Tools/buildbot/external.bat
+++ b/Tools/buildbot/external.bat
@@ -12,3 +12,24 @@
 if not exist db-4.4.20\build_win32\debug\libdb44sd.lib (
    devenv db-4.4.20\build_win32\Berkeley_DB.sln /build Debug /project db_static
 )
+
+@rem OpenSSL
+if not exist openssl-0.9.8a svn export http://svn.python.org/projects/external/openssl-0.9.8a
+
+@rem tcltk
+if not exist tcl8.4.12 (
+   if exist tcltk rd /s/q tcltk
+   svn export http://svn.python.org/projects/external/tcl8.4.12
+   svn export http://svn.python.org/projects/external/tk8.4.12
+   cd tcl8.4.12\win
+   nmake -f makefile.vc
+   nmake -f makefile.vc INSTALLDIR=..\..\tcltk install
+   cd ..\..
+   cd tk8.4.12\win
+   nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12
+   nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12 INSTALLDIR=..\..\tcltk install
+)
+
+@rem sqlite
+if not exist sqlite-source-3.3.4 svn export http://svn.python.org/projects/external/sqlite-source-3.3.4
+if not exist build\PCbuild\sqlite3.dll copy sqlite-source-3.3.4\sqlite3.dll build\PCbuild
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..ebc9aa4
--- /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 (!GetModuleFileNameEx(hProcess, NULL, 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);
+	}
+}
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
