Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
number of tests, all because of the codecs/_multibytecodecs issue described
here (it's not a Py3K issue, just something Py3K discovers):
http://mail.python.org/pipermail/python-dev/2006-April/064051.html

Hye-Shik Chang promised to look for a fix, so no need to fix it here. The
tests that are expected to break are:

test_codecencodings_cn
test_codecencodings_hk
test_codecencodings_jp
test_codecencodings_kr
test_codecencodings_tw
test_codecs
test_multibytecodec

This merge fixes an actual test failure (test_weakref) in this branch,
though, so I believe merging is the right thing to do anyway.
diff --git a/PC/VC6/pythoncore.dsp b/PC/VC6/pythoncore.dsp
index 04a1224..cf3200c 100644
--- a/PC/VC6/pythoncore.dsp
+++ b/PC/VC6/pythoncore.dsp
@@ -535,14 +535,6 @@
 # End Source File

 # Begin Source File

 

-SOURCE=..\..\Modules\regexmodule.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\Modules\regexpr.c

-# End Source File

-# Begin Source File

-

 SOURCE=..\..\Modules\rgbimgmodule.c

 # End Source File

 # Begin Source File

diff --git a/PC/_subprocess.c b/PC/_subprocess.c
index 1ca4ece..78ceb7d 100644
--- a/PC/_subprocess.c
+++ b/PC/_subprocess.c
@@ -104,7 +104,7 @@
 {
 	if (self->handle != INVALID_HANDLE_VALUE)
 		CloseHandle(self->handle);
-	PyMem_DEL(self);
+	PyObject_FREE(self);
 }
 
 static PyMethodDef sp_handle_methods[] = {
diff --git a/PC/config.c b/PC/config.c
index ee62dc5..75e1a3c 100644
--- a/PC/config.c
+++ b/PC/config.c
@@ -20,7 +20,6 @@
 extern void init_md5(void);
 extern void initnt(void);
 extern void initoperator(void);
-extern void initregex(void);
 #ifndef MS_WIN64
 extern void initrgbimg(void);
 #endif
@@ -95,7 +94,6 @@
         {"_md5", init_md5},
         {"nt", initnt}, /* Use the NT os functions, not posix */
         {"operator", initoperator},
-        {"regex", initregex},
 #ifndef MS_WIN64
         {"rgbimg", initrgbimg},
 #endif
diff --git a/PC/dllbase_nt.txt b/PC/dllbase_nt.txt
index 944ef95..c06e497 100644
--- a/PC/dllbase_nt.txt
+++ b/PC/dllbase_nt.txt
@@ -33,6 +33,7 @@
  - bZ2                       1D170000 - 1D180000
  - datetime                  1D180000 - 1D190000    pyd removed in 2.4
  - _csv                      1D190000 - 1D1A0000    pyd removed in 2.4
+ - _ctypes                   1D1A0000 - 1D1B0000
 
 Other extension modules
  - win32api                  1e200000 - 1e220000
diff --git a/PC/os2emx/Makefile b/PC/os2emx/Makefile
index 847fa67..762bfdb 100644
--- a/PC/os2emx/Makefile
+++ b/PC/os2emx/Makefile
@@ -304,8 +304,6 @@
 		Modules/md5module.c \
 		Modules/operator.c \
 		Modules/_randommodule.c \
-		Modules/regexmodule.c \
-		Modules/regexpr.c \
 		Modules/rgbimgmodule.c \
 		Modules/shamodule.c \
 		Modules/_sre.c \
diff --git a/PC/os2emx/config.c b/PC/os2emx/config.c
index 5ee4343..40c2cdc 100644
--- a/PC/os2emx/config.c
+++ b/PC/os2emx/config.c
@@ -64,7 +64,6 @@
 extern void initmath();
 extern void initmd5();
 extern void initoperator();
-extern void initregex();
 extern void initrgbimg();
 extern void initsha();
 extern void initstrop();
@@ -128,7 +127,6 @@
 	{"math", initmath},
 	{"md5", initmd5},
 	{"operator", initoperator},
-	{"regex", initregex},
 	{"rgbimg", initrgbimg},
 	{"sha", initsha},
 	{"strop", initstrop},
diff --git a/PC/os2emx/python24.def b/PC/os2emx/python24.def
index 4f78914..534dff8 100644
--- a/PC/os2emx/python24.def
+++ b/PC/os2emx/python24.def
@@ -1134,19 +1134,6 @@
 ; From python24_s.lib(_randommodule)
 ;  "init_random"
 
-; From python24_s.lib(regexmodule)
-;  "initregex"
-
-; From python24_s.lib(regexpr)
-;  "_Py_re_syntax_table"
-;  "_Py_re_compile_initialize"
-;  "_Py_re_compile_pattern"
-;  "_Py_re_match"
-;  "_Py_re_search"
-;  "_Py_re_set_syntax"
-;  "_Py_re_compile_fastmap"
-;  "_Py_re_syntax"
-
 ; From python24_s.lib(rgbimgmodule)
 ;  "initrgbimg"
 
diff --git a/PC/os2vacpp/config.c b/PC/os2vacpp/config.c
index 7512de5..9bb5752 100644
--- a/PC/os2vacpp/config.c
+++ b/PC/os2vacpp/config.c
@@ -27,7 +27,6 @@
 extern void initos2(void);
 extern void initoperator(void);
 extern void initposix(void);
-extern void initregex(void);
 extern void initrgbimg(void);
 extern void initsignal(void);
 extern void initselect(void);
@@ -70,7 +69,6 @@
 #endif
 #endif
         {"operator", initoperator},
-        {"regex", initregex},
 //        {"rgbimg", initrgbimg},
         {"signal", initsignal},
 #ifdef USE_SOCKET
diff --git a/PC/os2vacpp/makefile b/PC/os2vacpp/makefile
index 994ac49..f34047f 100644
--- a/PC/os2vacpp/makefile
+++ b/PC/os2vacpp/makefile
@@ -948,34 +948,6 @@
 	 $(PY_INCLUDE)\sliceobject.h $(PY_INCLUDE)\stringobject.h \
 	 $(PY_INCLUDE)\sysmodule.h $(PY_INCLUDE)\traceback.h $(PY_INCLUDE)\tupleobject.h
 
-regexmodule.obj: $(PY_INCLUDE)\abstract.h $(PY_INCLUDE)\ceval.h \
-	 $(PY_INCLUDE)\classobject.h $(PY_INCLUDE)\cobject.h $(PY_INCLUDE)\complexobject.h \
-	 pyconfig.h $(PY_INCLUDE)\dictobject.h $(PY_INCLUDE)\fileobject.h \
-	 $(PY_INCLUDE)\floatobject.h $(PY_INCLUDE)\funcobject.h $(PY_INCLUDE)\import.h \
-	 $(PY_INCLUDE)\intobject.h $(PY_INCLUDE)\intrcheck.h $(PY_INCLUDE)\listobject.h \
-	 $(PY_INCLUDE)\longobject.h $(PY_INCLUDE)\methodobject.h \
-	 $(PY_INCLUDE)\modsupport.h $(PY_INCLUDE)\moduleobject.h $(PY_INCLUDE)\mymalloc.h \
-	 $(PY_INCLUDE)\myproto.h $(PY_INCLUDE)\object.h $(PY_INCLUDE)\objimpl.h \
-	 $(PY_INCLUDE)\pydebug.h $(PY_INCLUDE)\pyerrors.h $(PY_INCLUDE)\pyfpe.h \
-	 $(PY_INCLUDE)\pystate.h $(PY_INCLUDE)\python.h $(PY_INCLUDE)\pythonrun.h \
-	 $(PY_INCLUDE)\rangeobject.h $(PY_MODULES)\regexpr.h $(PY_INCLUDE)\sliceobject.h \
-	 $(PY_INCLUDE)\stringobject.h $(PY_INCLUDE)\sysmodule.h $(PY_INCLUDE)\traceback.h \
-	 $(PY_INCLUDE)\tupleobject.h
-
-regexpr.obj: $(PY_INCLUDE)\abstract.h $(PY_INCLUDE)\ceval.h \
-	 $(PY_INCLUDE)\classobject.h $(PY_INCLUDE)\cobject.h $(PY_INCLUDE)\complexobject.h \
-	 pyconfig.h $(PY_INCLUDE)\dictobject.h $(PY_INCLUDE)\fileobject.h \
-	 $(PY_INCLUDE)\floatobject.h $(PY_INCLUDE)\funcobject.h $(PY_INCLUDE)\import.h \
-	 $(PY_INCLUDE)\intobject.h $(PY_INCLUDE)\intrcheck.h $(PY_INCLUDE)\listobject.h \
-	 $(PY_INCLUDE)\longobject.h $(PY_INCLUDE)\methodobject.h \
-	 $(PY_INCLUDE)\modsupport.h $(PY_INCLUDE)\moduleobject.h $(PY_INCLUDE)\mymalloc.h \
-	 $(PY_INCLUDE)\myproto.h $(PY_INCLUDE)\object.h $(PY_INCLUDE)\objimpl.h \
-	 $(PY_INCLUDE)\pydebug.h $(PY_INCLUDE)\pyerrors.h $(PY_INCLUDE)\pyfpe.h \
-	 $(PY_INCLUDE)\pystate.h $(PY_INCLUDE)\python.h $(PY_INCLUDE)\pythonrun.h \
-	 $(PY_INCLUDE)\rangeobject.h $(PY_MODULES)\regexpr.h $(PY_INCLUDE)\sliceobject.h \
-	 $(PY_INCLUDE)\stringobject.h $(PY_INCLUDE)\sysmodule.h $(PY_INCLUDE)\traceback.h \
-	 $(PY_INCLUDE)\tupleobject.h
-
 resource.obj: $(PY_INCLUDE)\abstract.h $(OS2TCPIP)\Include\sys\time.h $(PY_INCLUDE)\ceval.h \
 	 $(PY_INCLUDE)\classobject.h $(PY_INCLUDE)\cobject.h $(PY_INCLUDE)\complexobject.h \
 	 pyconfig.h $(PY_INCLUDE)\dictobject.h $(PY_INCLUDE)\fileobject.h \
diff --git a/PC/os2vacpp/makefile.omk b/PC/os2vacpp/makefile.omk
index 0d11b6a..9582338 100644
--- a/PC/os2vacpp/makefile.omk
+++ b/PC/os2vacpp/makefile.omk
@@ -699,30 +699,6 @@
 	 pythonrun.h rangeobject.h sliceobject.h stringobject.h sysmodule.h \
 	 traceback.h tupleobject.h
 
-regexmodule.obj: abstract.h ceval.h classobject.h cobject.h complexobject.h \
-	 pyconfig.h dictobject.h fileobject.h floatobject.h funcobject.h \
-	 import.h intobject.h intrcheck.h listobject.h longobject.h \
-	 methodobject.h modsupport.h moduleobject.h mymalloc.h myproto.h \
-	 object.h objimpl.h pydebug.h pyerrors.h pyfpe.h pystate.h python.h \
-	 pythonrun.h rangeobject.h regexpr.h sliceobject.h stringobject.h \
-	 sysmodule.h traceback.h tupleobject.h
-
-regexpr.obj: abstract.h ceval.h classobject.h cobject.h \
-	 complexobject.h pyconfig.h dictobject.h fileobject.h floatobject.h \
-	 funcobject.h import.h intobject.h intrcheck.h listobject.h \
-	 longobject.h methodobject.h modsupport.h moduleobject.h mymalloc.h \
-	 myproto.h object.h objimpl.h pydebug.h pyerrors.h pyfpe.h \
-	 pystate.h python.h pythonrun.h rangeobject.h regexpr.h \
-	 sliceobject.h stringobject.h sysmodule.h traceback.h tupleobject.h
-
-reopmodule.obj: abstract.h ceval.h classobject.h cobject.h complexobject.h \
-	 pyconfig.h dictobject.h fileobject.h floatobject.h funcobject.h \
-	 import.h intobject.h intrcheck.h listobject.h longobject.h \
-	 methodobject.h modsupport.h moduleobject.h mymalloc.h myproto.h \
-	 object.h objimpl.h pydebug.h pyerrors.h pyfpe.h pystate.h python.h \
-	 pythonrun.h rangeobject.h regexpr.h sliceobject.h stringobject.h \
-	 sysmodule.h traceback.h tupleobject.h
-
 resource.obj: abstract.h c:\mptn\include\sys\time.h ceval.h classobject.h \
 	 cobject.h complexobject.h pyconfig.h dictobject.h fileobject.h \
 	 floatobject.h funcobject.h import.h intobject.h intrcheck.h \
diff --git a/PC/os2vacpp/python.def b/PC/os2vacpp/python.def
index bc73fac..79d05b0 100644
--- a/PC/os2vacpp/python.def
+++ b/PC/os2vacpp/python.def
@@ -464,12 +464,6 @@
 ;               _Py_mergebitset
 ;               _Py_meta_grammar
 ;               _Py_newbitset
-               _Py_re_compile_fastmap
-               _Py_re_compile_initialize
-               _Py_re_compile_pattern
-               _Py_re_match
-               _Py_re_search
-               _Py_re_set_syntax
 ;               _Py_samebitset
                PyBuffer_Type
                PyBuffer_FromObject
diff --git a/PC/testpy.py b/PC/testpy.py
index f8746a3..78ad63c 100644
--- a/PC/testpy.py
+++ b/PC/testpy.py
@@ -5,23 +5,23 @@
 # change this module too.
 
 try:
-    import string
+    import os
 except:
-    print """Could not import the standard "string" module.
+    print """Could not import the standard "os" module.
   Please check your PYTHONPATH environment variable."""
     sys.exit(1)
 
 try:
-    import regex_syntax
+    import symbol
 except:
-    print """Could not import the standard "regex_syntax" module.  If this is
+    print """Could not import the standard "symbol" module.  If this is
   a PC, you should add the dos_8x3 directory to your PYTHONPATH."""
     sys.exit(1)
 
 import os
 
 for dir in sys.path:
-    file = os.path.join(dir, "string.py")
+    file = os.path.join(dir, "os.py")
     if os.path.isfile(file):
         test = os.path.join(dir, "test")
         if os.path.isdir(test):
diff --git a/PC/tix.diff b/PC/tix.diff
deleted file mode 100644
index 93a271f..0000000
--- a/PC/tix.diff
+++ /dev/null
@@ -1,108 +0,0 @@
-diff -ur tix-8.1.4/win/common.mak tix-8.1.4.new/win/common.mak
---- tix-8.1.4/win/common.mak	2002-12-11 07:19:42.000000000 +0100
-+++ tix-8.1.4.new/win/common.mak	2004-08-03 21:45:09.859375000 +0200
-@@ -18,10 +18,10 @@
- #	    support files
- #
- #----------------------------------------------------------------------
--TCL_VER          = 8.3
-+TCL_VER          = 8.4
- ITCL_VER          = 
- 
--INSTALLDIR      = C:\progra~1\tcl
-+INSTALLDIR      = ..\..\tcltk
- 
- !IFNDEF TIX_DEBUG
- NODEBUG = 1
-@@ -61,7 +61,7 @@
- !IF "$(TCL_VER)" == "8.4"
- TCLMAJOR=8
- TCLMINOR=4
--TCLPATCH=1
-+TCLPATCH=7
- TMPDIR          = tk$(TCL_VER)
- !ENDIF
- 
-@@ -176,14 +176,14 @@
- 	$(TMPDIR)\tixWinWm.obj
- 
- RMDIR		= $(TCLDIR)\win\rmd.bat
--MKDIR		= $(TCLDIR)\win\mkd.bat
-+MKDIR		= mkdir
- RM		= del
- 
- install:    install-binaries install-libraries
- 
- install-binaries: $(TCLSH)
--	$(MKDIR) "$(BIN_INSTALL_DIR)"
--	$(MKDIR) "$(LIB_INSTALL_DIR)"
-+	-$(MKDIR) "$(BIN_INSTALL_DIR)"
-+	-$(MKDIR) "$(LIB_INSTALL_DIR)"
- 	@echo installing $(TIXDLL)
- 	@copy "$(TIXDLL)" "$(BIN_INSTALL_DIR)"
- 	@copy "$(TIXLIB)" "$(LIB_INSTALL_DIR)"
-diff -ur tix-8.1.4/win/makefile.vc tix-8.1.4.new/win/makefile.vc
---- tix-8.1.4/win/makefile.vc	2002-12-02 04:02:54.000000000 +0100
-+++ tix-8.1.4.new/win/makefile.vc	2004-08-03 21:42:07.953125000 +0200
-@@ -54,12 +54,11 @@
- DBGX = d
- !ENDIF
- 
--cc32   = "$(TOOLS32)\bin\cl.exe"
--rc32   = "$(TOOLS32_rc)\bin\rc.exe"
--link32 = "$(TOOLS32)\bin\link.exe"
--include32 = -I"$(TOOLS32)\include"
-+cc32   = "cl.exe"
-+rc32   = "rc.exe"
-+link32 = "link.exe"
- 
--TIX_INCLUDES = $(include32) \
-+TIX_INCLUDES = \
- 	-I$(ROOT)\win -I$(ROOT)\generic \
- 	-I$(TKDIR)\generic -I$(TKDIR)\win -I$(TKDIR)\xlib \
- 	-I$(TCLDIR)\generic $(ITCL_CFLAGS)
-@@ -171,7 +170,7 @@
- #
- cvarsdll  = -D_X86_=1 -DWIN32 -D_WIN32 -D_MT -D_DLL
- cflagsdll = $(cvarsdll) -c -W3 -nologo -Fp$(TMPDIR)\ -YX -MD \
--	    -Oti -Gs -GD
-+	    -Oti -Gs -Gd
- 
- ######################################################################
- # Project specific targets
-@@ -181,7 +180,6 @@
- 
- $(DUMPEXTS): $(WINDIR)\winDumpExts.c
- 	$(cc32) $(CON_CFLAGS) -Fo$(TMPDIR)\ /c $?
--	set LIB="$(TOOLS32)\lib"
- 	$(link32) $(ldebug) $(conlflags) $(guilibs) -out:$@ \
- 		$(TMPDIR)\winDumpExts.obj 
- 
-@@ -193,7 +191,6 @@
- # (ToDo) $(TIXDLL) doesn't have resources to define its icon, etc.
- #
- $(TIXDLL): $(TIXOBJS) $(TMPDIR)\tixvc.def
--	set LIB="$(TOOLS32)\lib"
- 	$(link32) $(ldebug) $(dlllflags) -def:$(TMPDIR)\tixvc.def \
- 		$(TKLIBDIR)\$(TKLIB) $(TCLLIBDIR)\$(TCLLIB) $(guilibsdll) \
- 		$(ITCL_LIBS) -out:$@ @<<
-@@ -202,7 +199,6 @@
- 
- 
- $(TIXWISH): $(WISHOBJS) $(TIXOBJS) $(TIXLIB) $(TMPDIR)\tixwish.res
--	set LIB="$(TOOLS32)\lib"
- 	$(link32) $(ldebug) $(guilflags) \
- 		$(WISHOBJS) $(TMPDIR)\tixwish.res $(TIXLIB) \
- 		$(TKLIBDIR)\$(TKLIB) $(TCLLIBDIR)\$(TCLLIB) $(guilibsdll) \
-diff -ur tix-8.1.4/win/tk8.4/pkgIndex.tcl tix-8.1.4.new/win/tk8.4/pkgIndex.tcl
---- tix-8.1.4/win/tk8.4/pkgIndex.tcl	2002-12-15 04:21:54.000000000 +0100
-+++ tix-8.1.4.new/win/tk8.4/pkgIndex.tcl	2004-08-31 08:38:43.921875000 +0200
-@@ -15,7 +15,7 @@
- # We look in the ../../bin directory (an installed Tcl)
- lappend dirs ../../bin
- # We look in the ../../DLLs directory (an installed Python)
--lappend dirs ../../Dlls
-+lappend dirs [file join [file dirname [info nameofexe]] DLLs]
- # If not, this pkgIndex.tcl will probably fail.
- 
-