diff --git a/PC/pyconfig.h b/PC/pyconfig.h
index 9ab20f7..f1f719f 100644
--- a/PC/pyconfig.h
+++ b/PC/pyconfig.h
@@ -209,12 +209,6 @@
 #define Py_IS_INFINITY(X) (!_finite(X) && !_isnan(X))
 #define Py_IS_FINITE(X) _finite(X)
 
-/* Turn off warnings about deprecated C runtime functions in 
-   VisualStudio .NET 2005 */
-#if _MSC_VER >= 1400 && !defined _CRT_SECURE_NO_DEPRECATE
-#define _CRT_SECURE_NO_DEPRECATE
-#endif
-
 #endif /* _MSC_VER */
 
 /* define some ANSI types that are not defined in earlier Win headers */
diff --git a/PCbuild9/build_tkinter.py b/PCbuild9/build_tkinter.py
index d76ea26..3e24d00 100644
--- a/PCbuild9/build_tkinter.py
+++ b/PCbuild9/build_tkinter.py
@@ -14,7 +14,7 @@
 
 TCL = "tcl8.4.16"
 TK = "tk8.4.16"
-TIX = "Tix8.4.0"
+TIX = "tix-8.4.0"
 #TIX = "Tix8.4.2"
 ROOT = os.path.abspath(os.path.join(here, par, par))
 NMAKE = "nmake /nologo "
@@ -53,6 +53,7 @@
 
     # TIX
     if True:
+        # python9.mak is available at http://svn.python.org
         os.chdir(os.path.join(ROOT, TIX, "win"))
         if clean:
             system(NMAKE + "/f python9.mak clean")
diff --git a/PCbuild9/make_buildinfo.c b/PCbuild9/make_buildinfo.c
index 4cebf45..22b9882 100644
--- a/PCbuild9/make_buildinfo.c
+++ b/PCbuild9/make_buildinfo.c
@@ -3,6 +3,8 @@
 #include <sys/stat.h>
 #include <stdio.h>
 
+#define CMD_SIZE 500
+
 /* This file creates the getbuildinfo.o object, by first
    invoking subwcrev.exe (if found), and then invoking cl.exe.
    As a side effect, it might generate PCBuild\getbuildinfo2.c
@@ -23,7 +25,7 @@
 {
 	struct _stat st;
 	HKEY hTortoise;
-	char command[500];
+	char command[CMD_SIZE+1];
 	DWORD type, size;
 	if (_stat(".svn", &st) < 0)
 		return 0;
@@ -40,11 +42,11 @@
 	    type != REG_SZ)
 		/* Registry corrupted */
 		return 0;
-	strcat(command, "bin\\subwcrev.exe");
+	strcat_s(command, CMD_SIZE, "bin\\subwcrev.exe");
 	if (_stat(command+1, &st) < 0)
 		/* subwcrev.exe not part of the release */
 		return 0;
-	strcat(command, "\" .. ..\\Modules\\getbuildinfo.c getbuildinfo2.c");
+	strcat_s(command, CMD_SIZE, "\" .. ..\\Modules\\getbuildinfo.c getbuildinfo2.c");
 	puts(command); fflush(stdout);
 	if (system(command) < 0)
 		return 0;
@@ -60,17 +62,17 @@
 		return EXIT_FAILURE;
 	}
 	if (strcmp(argv[1], "Release") == 0) {
-		strcat(command, "-MD ");
+		strcat_s(command, CMD_SIZE, "-MD ");
 	}
 	else if (strcmp(argv[1], "Debug") == 0) {
-		strcat(command, "-D_DEBUG -MDd ");
+		strcat_s(command, CMD_SIZE, "-D_DEBUG -MDd ");
 	}
 	else if (strcmp(argv[1], "ReleaseItanium") == 0) {
-		strcat(command, "-MD /USECL:MS_ITANIUM ");
+		strcat_s(command, CMD_SIZE, "-MD /USECL:MS_ITANIUM ");
 	}
 	else if (strcmp(argv[1], "ReleaseAMD64") == 0) {
-		strcat(command, "-MD ");
-		strcat(command, "-MD /USECL:MS_OPTERON ");
+		strcat_s(command, CMD_SIZE, "-MD ");
+		strcat_s(command, CMD_SIZE, "-MD /USECL:MS_OPTERON ");
 	}
 	else {
 		fprintf(stderr, "unsupported configuration %s\n", argv[1]);
@@ -78,14 +80,14 @@
 	}
 
 	if ((do_unlink = make_buildinfo2()))
-		strcat(command, "getbuildinfo2.c -DSUBWCREV ");
+		strcat_s(command, CMD_SIZE, "getbuildinfo2.c -DSUBWCREV ");
 	else
-		strcat(command, "..\\Modules\\getbuildinfo.c");
-	strcat(command, " -Fogetbuildinfo.o -I..\\Include -I..\\PC");
+		strcat_s(command, CMD_SIZE, "..\\Modules\\getbuildinfo.c");
+	strcat_s(command, CMD_SIZE, " -Fogetbuildinfo.o -I..\\Include -I..\\PC");
 	puts(command); fflush(stdout);
 	result = system(command);
 	if (do_unlink)
-		unlink("getbuildinfo2.c");
+		_unlink("getbuildinfo2.c");
 	if (result < 0)
 		return EXIT_FAILURE;
 	return 0;
diff --git a/PCbuild9/pyproject.vsprops b/PCbuild9/pyproject.vsprops
index 16cbf10..9b5b3ea 100644
--- a/PCbuild9/pyproject.vsprops
+++ b/PCbuild9/pyproject.vsprops
@@ -12,7 +12,7 @@
 		InlineFunctionExpansion="1"
 		EnableIntrinsicFunctions="true"
 		AdditionalIncludeDirectories="..\Include; ..\PC"
-		PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_WIN32"
+		PreprocessorDefinitions="_WIN32"
 		StringPooling="true"
 		ExceptionHandling="0"
 		RuntimeLibrary="0"
diff --git a/PCbuild9/readme.txt b/PCbuild9/readme.txt
index fd3967a..ef3b97d 100644
--- a/PCbuild9/readme.txt
+++ b/PCbuild9/readme.txt
@@ -281,6 +281,14 @@
 Profile Guided Optimization
 ---------------------------
 
+The solution has two configurations for PGO. The PGInstrument configuration
+must be build first. The PGInstrument binaries are lniked against a profiling
+library and contain extra debug information. The PGUpdate configuration takes the profiling data and generates optimized binaries.
+
+The build_pgo.bat script automates the creation of optimized binaries. It
+creates the PGI files, runs the unit test suite or PyBench with the PGI
+python and finally creates the optimized files.
+
 http://msdn2.microsoft.com/en-us/library/e7k32f4k(VS.90).aspx
 
 Static library
@@ -300,7 +308,7 @@
 (*.vsprops). The properties can be viewed and altered in the Property
 Manager (View -> Other Windows -> Property Manager).
 
- * debug (debug macros)
+ * debug (debug macro: _DEBUG)
  * pginstrument (PGO)
  * pgupdate (PGO)
     +-- pginstrument
@@ -310,8 +318,8 @@
  * pyd_d (python extension, debug build)
     +-- debug
     +-- pyproject
- * pyproject (base settings for all projects)
- * release (release macros)
+ * pyproject (base settings for all projects, user macros like PyDllName)
+ * release (release macro: NDEBUG)
  * x64 (AMD64 / x64 platform specific settings)
 
 The pyproject propertyfile defines _WIN32 and x64 defines _WIN64 and _M_X64
@@ -320,6 +328,7 @@
 
 YOUR OWN EXTENSION DLLs
 -----------------------
+
 If you want to create your own extension module DLL, there's an example
 with easy-to-follow instructions in ../PC/example/; read the file
 readme.txt there first.
