diff --git a/PC/os2emx/Makefile b/PC/os2emx/Makefile
index 787a3f4..265ff0b 100644
--- a/PC/os2emx/Makefile
+++ b/PC/os2emx/Makefile
@@ -264,7 +264,43 @@
 		Modules/gcmodule.c \
 		Modules/signalmodule.c \
 		Modules/posixmodule.c \
-		Modules/threadmodule.c
+		Modules/threadmodule.c \
+		Modules/arraymodule.c \
+		Modules/binascii.c \
+		Modules/cmathmodule.c \
+		Modules/_codecsmodule.c \
+		Modules/cPickle.c \
+		Modules/cStringIO.c \
+		Modules/_csv.c \
+		Modules/datetimemodule.c \
+		Modules/dlmodule.c \
+		Modules/errnomodule.c \
+		Modules/fcntlmodule.c \
+		Modules/imageop.c \
+		Modules/itertoolsmodule.c \
+		Modules/_localemodule.c \
+		Modules/mathmodule.c \
+		Modules/md5c.c \
+		Modules/md5module.c \
+		Modules/operator.c \
+		Modules/pcremodule.c \
+		Modules/pypcre.c \
+		Modules/_randommodule.c \
+		Modules/regexmodule.c \
+		Modules/regexpr.c \
+		Modules/rgbimgmodule.c \
+		Modules/shamodule.c \
+		Modules/_sre.c \
+		Modules/stropmodule.c \
+		Modules/structmodule.c \
+		Modules/symtablemodule.c \
+		Modules/termios.c \
+		Modules/timemodule.c \
+		Modules/timingmodule.c \
+		Modules/_weakref.c \
+		Modules/xreadlinesmodule.c \
+		Modules/xxsubtype.c \
+		Modules/zipimport.c)
 SRC.PARSE1=	$(addprefix $(TOP), \
 		Parser/acceler.c \
 		Parser/grammar1.c \
@@ -376,53 +412,20 @@
 #   2) use the standard module naming convention
 #      (the 'module' in ?????module.c is assumed)
 # - these can be built with implicit rules
-EASYEXTMODULES=	array \
-		cmath \
-		_codecs \
-		datetime \
-		dl \
-		errno \
-		fcntl \
-		fpectl \
+EASYEXTMODULES=	fpectl \
 		fpetest \
-		_locale \
-		math \
 		parser \
 		pwd \
-		_random \
-		rgbimg \
 		rotor \
-		select \
-		sha \
-		strop \
-		struct \
-		time \
-		timing
+		select 
 
 # Python modules to be dynamically loaded that need explicit build rules
 #  (either multiple source files and/or non-standard module naming)
 #  (NOTE: use shortened names for modules affected by 8 char name limit)
-HARDEXTMODULES=	binascii \
-		cPickle \
-		cStringI \
-		_csv \
-		_hotshot \
-		imageop \
-		itertool \
-		md5 \
-		operator \
-		pcre \
-		regex \
+HARDEXTMODULES=	_hotshot \
 		_socket \
-		_sre \
-		_symtabl \
-		termios \
 		_testcap \
-		unicoded \
-		_weakref \
-		xreadlin \
-		xxsubtyp \
-		zipimpor
+		unicoded
 
 # Python external ($(MODULE.EXT)) modules - can be EASY or HARD
 ifeq ($(HAVE_ZLIB),yes)
@@ -528,63 +531,13 @@
 # Explicit building instructions for those external modules that require 
 # awkward handling (due e.g. to non-std naming, or multiple source files)
 # - standard modules
-binascii$(MODULE.EXT): $(OUT)binascii$O $(OUT)binascii_m.def $(PYTHON.IMPLIB)
-	$(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS)
-
-cPickle$(MODULE.EXT): $(OUT)cPickle$O $(OUT)cPickle_m.def $(PYTHON.IMPLIB)
-	$(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS)
-
-# cStringIO needs to be renamed to be useful (8 char DLL name limit)
-cStringIO$(MODULE.EXT): $(OUT)cStringIO$O $(OUT)cStringIO_m.def $(PYTHON.IMPLIB)
-	$(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS)
-
-cStringI$(MODULE.EXT): cStringIO$(MODULE.EXT)
-	cp $^ $@
-
-_csv$(MODULE.EXT): $(OUT)_csv$O $(OUT)_csv_m.def $(PYTHON.IMPLIB)
-	$(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS)
 
 _hotshot$(MODULE.EXT): $(OUT)_hotshot$O $(OUT)_hotshot_m.def $(PYTHON.IMPLIB)
 	$(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS)
 
-imageop$(MODULE.EXT): $(OUT)imageop$O $(OUT)imageop_m.def $(PYTHON.IMPLIB)
-	$(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS)
-
-# itertools needs to be renamed to be useful
-itertools$(MODULE.EXT): $(OUT)itertoolsmodule$O $(OUT)itertools_m.def $(PYTHON.IMPLIB)
-	$(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS)
-
-itertool$(MODULE.EXT): itertools$(MODULE.EXT)
-	cp $^ $@
-
-md5$(MODULE.EXT): $(OUT)md5module$O $(OUT)md5c$O $(OUT)md5_m.def $(PYTHON.IMPLIB)
-	$(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS)
-
-operator$(MODULE.EXT): $(OUT)operator$O $(OUT)operator_m.def $(PYTHON.IMPLIB)
-	$(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS)
-
-pcre$(MODULE.EXT): $(OUT)pcremodule$O $(OUT)pypcre$O $(OUT)pcre_m.def $(PYTHON.IMPLIB)
-	$(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS)
-
-regex$(MODULE.EXT): $(OUT)regexmodule$O $(OUT)regexpr$O $(OUT)regex_m.def $(PYTHON.IMPLIB)
-	$(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS)
-
 _socket$(MODULE.EXT): $(OUT)socketmodule$O $(OUT)_socket_m.def $(PYTHON.IMPLIB)
 	$(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS)
 
-_sre$(MODULE.EXT): $(OUT)_sre$O $(OUT)_sre_m.def $(PYTHON.IMPLIB)
-	$(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS)
-
-# _symtable needs to be renamed to be useful
-_symtable$(MODULE.EXT): $(OUT)symtablemodule$O $(OUT)_symtable_m.def $(PYTHON.IMPLIB)
-	$(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS)
-
-_symtabl$(MODULE.EXT): _symtable$(MODULE.EXT)
-	cp $^ $@
-
-termios$(MODULE.EXT): $(OUT)termios$O $(OUT)termios_m.def $(PYTHON.IMPLIB)
-	$(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS)
-
 # _testcapi needs to be renamed to be useful
 _testcapi$(MODULE.EXT): $(OUT)_testcapimodule$O $(OUT)_testcapi_m.def $(PYTHON.IMPLIB)
 	$(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS)
@@ -599,30 +552,6 @@
 unicoded$(MODULE.EXT): unicodedata$(MODULE.EXT)
 	cp $^ $@
 
-_weakref$(MODULE.EXT): $(OUT)_weakref$O $(OUT)_weakref_m.def $(PYTHON.IMPLIB)
-	$(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS)
-
-# xreadlines needs to be renamed to be useful
-xreadlines$(MODULE.EXT): $(OUT)xreadlinesmodule$O $(OUT)xreadlines_m.def $(PYTHON.IMPLIB)
-	$(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS)
-
-xreadlin$(MODULE.EXT): xreadlines$(MODULE.EXT)
-	cp $^ $@
-
-# xxsubtype needs to be renamed to be useful
-xxsubtype$(MODULE.EXT): $(OUT)xxsubtype$O $(OUT)xxsubtype_m.def $(PYTHON.IMPLIB)
-	$(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS)
-
-xxsubtyp$(MODULE.EXT): xxsubtype$(MODULE.EXT)
-	cp $^ $@
-
-# zipimport needs to be renamed to be useful
-zipimport$(MODULE.EXT): $(OUT)zipimport$O $(OUT)zipimport_m.def $(PYTHON.IMPLIB)
-	$(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS)
-
-zipimpor$(MODULE.EXT): zipimport$(MODULE.EXT)
-	cp $^ $@
-
 # - optional modules (requiring other software to be installed)
 bsddb185$(MODULE.EXT): $(OUT)bsddbmodule$O $(OUT)bsddb185_m.def $(PYTHON.IMPLIB)
 	$(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) -ldb $(LIBS)
diff --git a/PC/os2emx/README.os2emx b/PC/os2emx/README.os2emx
index f183853..fefd021 100644
--- a/PC/os2emx/README.os2emx
+++ b/PC/os2emx/README.os2emx
@@ -11,11 +11,16 @@
 - now setting higher number of file handles (250).
 - defaults to building with PyMalloc enabled (Python 2.3 default).
 - the port is now maintained in the Python CVS repository.
+- most standard modules are now built into the core Python DLL.
 
 Python 2.3 incorporates several changes which have resolved the 
-longstanding problems the EMX port has had with test_longexp (used 
-to be "YOU HAVE BEEN WARNED" item 1).
-  
+longstanding problems the EMX port has had with test_longexp.
+
+Python 2.3 introduces changes to the Berkeley DB support, as a result of
+the PyBSDDB3 module (for the Sleepycat DB 3.3.x/4.0.x/4.1.x library)
+being imported into Python's standard library - see "YOU HAVE BEEN WARNED"
+items 4 & 5 for more information.
+
 
 Licenses and info about Python and EMX
 --------------------------------------
@@ -58,10 +63,10 @@
 1.5.2.  Jeff used IBM's Visual Age C++ (v3) for his ports, and his 
 patches have been included in the Python 2.3 source distribution.
 
-Andrew Zabolotny implemented a port of Python v1.5.2 using the EMX 
+Andy Zabolotny implemented a port of Python v1.5.2 using the EMX 
 development tools.  His patches against the Python v1.5.2 source 
 distribution have become the core of this port, and without his efforts 
-this port wouldn't exist.  Andrew's port also appears to have been 
+this port wouldn't exist.  Andy's port also appears to have been 
 compiled with his port of gcc 2.95.2 to EMX, which I have but have 
 chosen not to use for the binary distribution of this port (see item 21 
 of the "YOU HAVE BEEN WARNED" section below).
@@ -78,7 +83,7 @@
  - v2.2c1 on December 16, 2001 (not uploaded to archive sites);
  - v2.2 on December 24, 2001;
  - v2.2.1c2 on March 31, 2002 (not uploaded to archive sites);
- - v2.2.1 on April 14, 2002.
+ - v2.2.1 on April 14, 2002;
  - v2.2.2 on October 24, 2002.
 
 It is possible to have these earlier ports still usable after installing 
@@ -100,14 +105,11 @@
 - ncurses      (see http://dickey.his.com/ for more info, v5.2)
 - GNU Readline (Kai Uwe Rommel's port available from Hobbes or LEO, v2.1)
 - GNU GDBM     (Kai Uwe Rommel's port available from Hobbes or LEO, v1.7.3)
-- zlib         (Hung-Chi Chu's port available from Hobbes or LEO, v1.1.3)
-- expat        (distributed with Python, v1.95.2)
+- zlib         (derived from Hung-Chi Chu's port of v1.1.3, v1.1.4)
+- expat        (distributed with Python, v1.95.6)
 - GNU MP       (Peter Meerwald's port available from LEO, v2.0.2)
 - GNU UFC      (Kai Uwe Rommel's port available from LEO, v2.0.4)
 
-The zlib module requires the Z.DLL to be installed - see the Installation 
-section and item 12 of the "YOU HAVE BEEN WARNED" section for more 
-information.
 
 About this port
 ---------------
@@ -119,7 +121,7 @@
 
 Python.exe is linked as an a.out executable, ie using EMX method E1 
 to compile & link the executable.  This is so that fork() works (see 
-"YOU HAVE BEEN WARNED" item 2).
+"YOU HAVE BEEN WARNED" item 1).
 
 Python23.dll is created as a normal OMF DLL, with an OMF import 
 library and module definition file.  There is also an a.out (.a) import 
@@ -130,42 +132,50 @@
 
 Modules:
 
-As far as possible, extension modules have been made dynamically loadable 
-when the module is intended to be built this way.  I haven't yet changed 
-the building of Python's standard modules over to using the DistUtils.
+With the exception of modules that have a significant code size, or are 
+not recommended or desired for normal use, the standard modules are now 
+built into the core DLL rather than configured as dynamically loadable 
+modules.  This is for both reasons of performance (startup time) and 
+memory use (lots of small DLLs fragment the address space).
 
-See "YOU HAVE BEEN WARNED" item 5 for notes about the fcntl module, and 
-"YOU HAVE BEEN WARNED" item 14 for notes about the pwd and grp modules.
+I haven't yet changed the building of Python's dynamically loadable 
+modules over to using the DistUtils.
+
+See "YOU HAVE BEEN WARNED" item 3 for notes about the fcntl module, and 
+"YOU HAVE BEEN WARNED" item 10 for notes about the pwd and grp modules.
 
 Support for case sensitive module import semantics has been added to match 
 the Windows release.  This can be deactivated by setting the PYTHONCASEOK 
 environment variable (the value doesn't matter) - see "YOU HAVE BEEN WARNED" 
-item 16.
+item 12.
 
 Optional modules:
 
 Where I've been able to locate the required 3rd party packages already 
 ported to OS/2, I've built and included them.
 
-These include ncurses (_curses, _curses_panel), BSD DB (bsddb), 
-GNU GDBM (gdbm, dbm), zlib (zlib), GNU Readline (readline), expat 
-(pyexpat), GNU MP (mpz) and GNU UFC (crypt).
+These include ncurses (_curses, _curses_panel), BSD DB (bsddb185), 
+GNU GDBM (gdbm, dbm), zlib (zlib), GNU Readline (readline), GNU MP (mpz) 
+and GNU UFC (crypt).
+
+Expat is now included in the Python release sourceball, and is always 
+built.
 
 I have built these modules statically linked against the 3rd party 
-libraries, with the exception of zlib.  Unfortunately my attempts to use 
-the dll version of GNU readline have been a dismal failure, in that when 
-the dynamically linked readline module is active other modules 
-immediately provoke a core dump when imported.
+libraries.  Unfortunately my attempts to use the dll version of GNU 
+readline have been a dismal failure, in that when the dynamically 
+linked readline module is active other modules immediately provoke a 
+core dump when imported.
 
 Only the BSD DB package (part of the BSD package distributed with EMX) 
-needed source modifications to be used for this port, pertaining to use 
+needs source modifications to be used for this port, pertaining to use 
 of errno with multithreading.
 
 The other packages, except for ncurses and zlib, needed Makefile changes 
 for multithreading support but no source changes.
 
 The _curses_panel module is a potential problem - see "YOU HAVE BEEN 
-WARNED" item 17.
+WARNED" item 13.
 
 Upstream source patches:
 
@@ -210,9 +220,14 @@
 Packaging
 ---------
 
-This port is packaged into several archives:
-- python-2.3-os2emx-bin-02????.zip   (binaries, library modules)
-- python-2.3-os2emx-src-03????.zip   (source patches and makefiles)
+This port is packaged as follows:
+- python-2.3-os2emx-bin-03????.zip  (binaries, library modules)
+- python-2.3-os2emx-src-03????      (patches+makefiles for non-Python code)
+
+As all the Python specific patches for the port are now part of the 
+Python release tarball, only the patches and makefiles involved in 
+building external libraries for optional extensions are included in 
+the source archive.
 
 Documentation for the Python language, as well as the Python 2.3 
 source distibution, can be obtained from the Python website 
@@ -226,10 +241,6 @@
 Obtain and install, as per the included instructions, the EMX runtime 
 package.
 
-If you wish to use the zlib module, you will need to obtain and install 
-the Z.DLL from Hung-Chi Chu's port of zlib v1.1.3 (zlib113.zip).  See also 
-"YOU HAVE BEEN WARNED" item 12 below.
-
 Unpack this archive, preserving the subdirectories, in the root directory 
 of the drive where you want Python to live.
 
@@ -276,12 +287,116 @@
 distribution by changing to the Python 2.3 home directory and executing the 
 REGRTEST.CMD batch file.  The following tests are known to fail at this 
 time:
-- test_longexp (see "YOU HAVE BEEN WARNED" item 1);
 - test_mhlib (I don't know of any port of MH to OS/2);
-- test_pwd (see "YOU HAVE BEEN WARNED" item 14, probably a bug in my code);
+- test_pwd (see "YOU HAVE BEEN WARNED" item 10, probably a bug in my code);
 - test_grp (as per test_pwd);
-- test_strftime (see "YOU HAVE BEEN WARNED" item 20);
-- test_socketserver (fork() related, see "YOU HAVE BEEN WARNED" item 2).
+- test_strftime (see "YOU HAVE BEEN WARNED" item 15);
+- test_strptime (see "YOU HAVE BEEN WARNED" item 22);
+- test_whichdb (see "YOU HAVE BEEN WARNED" item 5).
+- test_socketserver (fork() related, see "YOU HAVE BEEN WARNED" item 1).
+
+Note that some of the network related tests expect the loopback interface
+(interface "lo", with IP address 127.0.0.1) to be enabled, which from my
+experience is not the default configuration.  Additionally, test_popen2
+expects the "cat" utility (such as found in ports of the GNU tools) to
+be installed.
+
+
+Building from source
+--------------------
+
+With the EMX port now checked into Python's CVS repository, the build 
+infrastructure is part of the Python release sourceball.
+
+Prerequisites
+
+First and foremost, you need an operational EMX development installation - 
+EMX v0.9d with fix04 (the latest at time of writing) & the gcc 2.8.1 
+compiler released by Eberhard Mattes is the recommended setup.
+
+If you have a different version of gcc installed, see "YOU HAVE BEEN 
+WARNED" item 16.
+
+Other items of software required:-
+
+- GNU make (I'm using v3.76.1)
+- rm, cp, mkdir from the GNU file utilities package
+- GNU find
+
+Procedure
+
+0. all changes mentioned apply to files in the PC/os2emx subdirectory 
+   of the Python release source tree.  make is also executed from this 
+   directory, so change into this directory before proceeding.
+
+1. decide if you need to change the location of the Python installation.
+   If you wish to do this, set the value of the Makefile variable LIB_DIR 
+   to the directory you wish to use for PYTHONHOME 
+   (eg /usr/local/lib/python2.3).
+
+   If you want Python to find its library without the PYTHONHOME 
+   environment variable set, set the value of the Makefile variable 
+   FIXED_PYHOME to "yes" (uncomment the appropriate line).
+
+2. If you wish the Python executables (python.exe, pythonpm.exe & pgen.exe) 
+   to be installed in a directory other than the PYTHONHOME directory, set 
+   the value of the Makefile variable EXE_DIR to the appropriate directory.
+
+3. If you wish the Python core DLL (python23.dll) to be installed in a 
+   directory other than the directory in which the Python executables are 
+   installed (by default, the PYTHONHOME directory), set the value of the 
+   Makefile variable DLL_DIR to the appropriate directory.  This DLL must 
+   be placed in a directory on the system's LIBPATH, or that gets set 
+   with BEGINLIBPATH or ENDLIBPATH.
+
+4. If you have installed any of the libraries that can be used to build 
+   optional Python modules, set the value of the relevant HAVE_<package> 
+   Makefile variable to "yes".  The Makefile currently supports:
+
+   library               Makefile variable
+   ........................................
+   zlib (1.1.4)          HAVE_ZLIB
+   GNU UltraFast Crypt   HAVE_UFC
+   Tcl/Tk                HAVE_TCLTK (not known to work)
+   GNU MP                HAVE_GMPZ
+   GNU Readline          HAVE_GREADLINE
+   BSD DB (v1.85)        HAVE_BSDDB
+   ncurses               HAVE_NCURSES
+   GNU gdbm              HAVE_GDBM
+   libbz2                HAVE_BZ2
+
+   Please note that you need to check that what you have installed 
+   is compatible with Python's build options.  In particular, the 
+   BSD DB v1.85 library needs to be rebuilt with a source patch for 
+   multithread support (doesn't change the library's reentrant status 
+   but allows it to be linked to Python which is multithreaded).  
+   Widely available binary packages of other librarys & DLLs are 
+   not built/linked with multithread support.  Beware!
+
+   Also note that the Makefile currently expects any libraries to be 
+   found with the default library search path.  You may need to add 
+   -L switches to the LDFLAGS Makefile variable if you have installed 
+   libraries in directories not in the default search path (which can 
+   be controlled by the LIBRARY_PATH environment variable used by EMX).
+
+5. make
+
+   It is usually a good idea to redirect the stdout and stderr streams 
+   of the make process to log files, so that you can review any messages. 
+
+6. make test
+
+   This runs the Python regression tests, and completion is a sign of 
+   a usable build.  You should check the list of skipped modules to 
+   ensure that any optional modules you selected have been built; 
+   checking the list of failures against the list of known failures 
+   elsewhere in this document is also prudent.
+
+7. make install
+   >>>>>> NOT YET COMPLETE <<<<<< 
+
+8. change to a directory outside the Python source tree and start Python. 
+   Check the version and build date to confirm satisfactory installation.
 
 
 YOU HAVE BEEN WARNED!!
@@ -289,65 +404,77 @@
 
 I know about a number of nasties in this port.
 
-{1.  Issue resolved...}
-
-2.  Eberhard Mattes, author of EMX, writes in his documentation that fork() 
+1.  Eberhard Mattes, author of EMX, writes in his documentation that fork() 
 is very inefficient in the OS/2 environment.  It also requires that the 
 executable be linked in a.out format rather than OMF.  Use the os.exec 
 and/or the os.spawn family of functions where possible.
 
-{3.  Issue resolved...}
-
-4.  In the absence of GNU Readline, terminating the interpreter requires a 
+2.  In the absence of GNU Readline, terminating the interpreter requires a 
 control-Z (^Z) followed by a carriage return.  Jeff Rush documented this 
 problem in his Python 1.5.2 port.  With Readline, a control-D (^D) works 
 as per the standard Unix environment.
 
-5.  EMX only has a partial implementation of fcntl().  The fcntl module 
+3.  EMX only has a partial implementation of fcntl().  The fcntl module 
 in this port supports what EMX supports.  If fcntl is important to you, 
 please review the EMX C Library Reference (included in .INF format in the 
 EMXVIEW.ZIP archive as part of the complete EMX development tools suite).
 Because of other side-effects I have modified the test_fcntl.py test 
 script to deactivate the exercising of the missing functionality.
 
-6.  The BSD DB module is linked against DB v1.85.  This version is widely 
-known to have bugs, although some patches have become available (and are 
-incorporated into the included bsddb module).  Unless you have problems 
-with software licenses which would rule out GDBM (and the dbm module 
-because it is linked against the GDBM library) or need it for file format 
-compatibility, you may be better off deleting it and relying on GDBM.  I 
-haven't looked at porting the version of the module supporting the later 
-SleepyCat releases of BSD DB, which would also require a port of the 
-SleepyCat DB package.
+4.  the PyBSDDB3 module has been imported into the Python standard
+library, with the intent of superceding the BSDDB 1.85 module (bsddb).
+As I don't yet have a satisfactory port of Sleepcat's more recent DB
+library (3.3.x/4.0.x/4.1.x), I haven't included a binary of this
+module.  I have left the Python part of the PyBSDDB package in this
+distribution for completeness.
 
-7.  The readline module has been linked against ncurses rather than the 
+5.  As a consequence of the PyBSDDB3 module being imported, the former 
+BSD DB (bsddb) module, linked against the DB v1.85 library from EMX, 
+has been renamed bsddb185.  The bsddb185 module will not be built by 
+default on most platforms, but in the absence of a PyBSDDB3 module I 
+have retained it in the EMX port.
+
+Version 1.85 of the DB library is widely known to have bugs, although 
+some patches have become available (and are incorporated into the 
+included bsddb185 module).  Unless you have problems with software 
+licenses which would rule out GDBM (and the dbm module because it is 
+linked against the GDBM library) or need it for file format compatibility, 
+you may be better off deleting it and relying on GDBM.
+
+Any code you have which uses the bsddb module can be modified to use the 
+renamed module by changing
+
+  import bsddb
+
+to
+
+  import bsddb185 as bsddb
+
+A side effect of these changes is that the test_whichdb regression test
+fails.
+
+6.  The readline module has been linked against ncurses rather than the 
 termcap library supplied with EMX.
 
-{8.  Workaround implemented}
-
-9.  I have configured this port to use "/" as the preferred path separator 
+7.  I have configured this port to use "/" as the preferred path separator 
 character, rather than "\" ('\\'), in line with the convention supported 
 by EMX.  Backslashes are still supported of course, and still appear in 
 unexpected places due to outside sources that don't get normalised.
 
-10. While the DistUtils components are now functional, other 
+8.  While the DistUtils components are now functional, other 
 packaging/binary handling tools and utilities such as those included in
 the Demo and Tools directories - freeze in particular - are unlikely to 
 work.  If you do get them going, I'd like to know about your success.
 
-11. I haven't set out to support the [BEGIN|END]LIBPATH functionality 
+9.  I haven't set out to support the [BEGIN|END]LIBPATH functionality 
 supported by one of the earlier ports (Rush's??).  If it works let me know.
 
-12. There appear to be several versions of Z.DLL floating around - the one 
-I have is 45061 bytes and dated January 22, 1999.  I have a report that 
-another version causes SYS3175s when the zlib module is imported.
-
-14. As a result of the limitations imposed by EMX's library routines, the 
+10. As a result of the limitations imposed by EMX's library routines, the 
 standard extension module pwd only synthesises a simple passwd database, 
 and the grp module cannot be supported at all.
 
-I have written substitutes, in Python naturally, which can process real 
-passwd and group files for those applications (such as MailMan) that 
+I have written pure Python substitutes for pwd and grp, which can process 
+real passwd and group files for those applications (such as MailMan) that 
 require more than EMX emulates.  I have placed pwd.py and grp.py in 
 Lib/plat-os2emx, which is usually before Lib/lib-dynload (which contains 
 pwd.pyd) in the PYTHONPATH.  If you have become attached to what pwd.pyd 
@@ -374,19 +501,20 @@
 that as of this release, this code fails the regression test.  I'm looking 
 into why, and hope to have this fixed.
 
-15. As of Python 2.1, termios support has mutated.  There is no longer a 
-platform specific TERMIOS.py containing the symbolic constants - these 
-now live in the termios module.  EMX's termios routines don't support all 
-of the functionality now exposed by the termios module - refer to the EMX 
-documentation to find out what is supported.
+Be aware that Python's pwd & group modules are for reading password and 
+group information only.
 
-16. The case sensitive import semantics introduced in Python 2.1 for other 
+11. EMX's termios routines don't support all of the functionality now 
+exposed by the termios module - refer to the EMX documentation to find 
+out what is supported.
+
+12. The case sensitive import semantics introduced in Python 2.1 for other 
 case insensitive but case preserving file/operating systems (Windows etc), 
 have been incorporated into this port, and are active by default.  Setting 
 the PYTHONCASEOK environment variable (to any value) reverts to the 
 previous (case insensitive) semantics.
 
-17. Because I am statically linking ncurses, the _curses_panel 
+13. Because I am statically linking ncurses, the _curses_panel 
 module has potential problems arising from separate library data areas.
 To avoid this, I have configured the _curses_.pyd (imported as 
 "_curses_panel") to import the ncurses symbols it needs from _curses.pyd. 
@@ -395,49 +523,43 @@
 If you have problems attempting to use the _curses_panel support please 
 let me know, and I'll look into an alternative solution.
 
-18. I tried enabling the Python Object Allocator (PYMALLOC) code.  While 
-the port built this way passes the regression test, the Numpy extension 
-(I tested v19.0.0) as built with with the port's DistUtils code doesn't 
-work.  Specifically, attempting to "import Numeric" provokes a core dump.  
-Supposedly Numpy v20.1.0 contains a fix for this, but for reason outlined 
-in item 1 above, PYMALLOC is not enabled in this release.
-
-19. sys.platform now reports "os2emx" instead of "os2".  os.name still 
+14. sys.platform reports "os2emx" instead of "os2".  os.name still 
 reports "os2".  This change was to make it easier to distinguish between 
-the VAC++ build (being maintained by Michael Muller) and the EMX build 
+the VAC++ build (formerly maintained by Michael Muller) and the EMX build 
 (this port), principally for DistUtils.
 
-20. it appears that the %W substitution in the EMX strftime() routine has 
+15. it appears that the %W substitution in the EMX strftime() routine has 
 an off-by-one bug.  strftime was listed as passing the regression tests 
 in previous releases, but this fact appears to have been an oversight in 
 the regression test suite.  To fix this really requires a portable 
 strftime routine - I'm looking into using one from FreeBSD, but its not 
 ready yet.
 
-21. previous releases of my Python ports have used the GCC optimisations 
-"-O2 -fomit-frame-pointer".  After experimenting with various optimisation 
-settings, including deactivating assert()ions, I have concluded that "-O2" 
-appears the best compromise for GCC 2.8.1 on my hardware.  Curiously, 
-deactivating assert() (via defining NDEBUG) _negatively_ impacts 
-performance, allbeit only slightly, so I've chosen to leave the assert()s 
-active.
+16. I have successfully built this port with Andy Zabolotny's ports of 
+pgcc 2.95 and gcc 3.2.1, in addition to EM's gcc 2.8.1.  To use the 
+bsddb185 module with the gcc 3.2.1 build, I had to recompile the DB library 
+with gcc 3.2.1 - I don't know why, but trying to import the module built 
+against a DB library compiled with gcc 2.8.1 would result in a SYS3175 
+error.
 
-I did try using Andrew Zabolotny's (p)gcc 2.95.2 compiler, and in 
-general concluded that it produced larger objects that ran slower 
-than Mattes' gcc 2.8.1 compiler.
+I have not attempted to compile Python with any version of gcc prior to 
+v2.8.1.
 
-Pystone ratings varied from just over 2000/s (no optimisation at all) 
-to just under 3300/s (gcc 2.8.1, -O2) on my K6/2-300 system, for 
-100,000 iterations per run (rather than the default 10000).
+If you compile Python with pgcc 2.95, changing the optimisation from -O2 to 
+-O3 is worthwhile.  While more aggressive optimisation is supported by gcc, 
+a lot of benchmarking indicates that Python's performance is impeded by 
+optimisation settings beyond just -O2 (-O3 for pgcc 2.95), at least on my 
+hardware (AMD Athlon 1.4GHz, VIA C3 800MHz). 
 
-As a result of the optimisation change, the Python DLL is about 10% 
-smaller than in the 2.1 release, and many of the dynamically loadable 
-modules are smaller too.
+If you wish to compile Python with gcc 3.2.1, you will need to modify the 
+Makefile to compile Modules/_sre.c with either the -Os (recommended) or 
+-O options, with the global optimisation set to -O2 or -O3 (not much 
+difference between these with this compiler).  Alternatively, you could 
+change the global optimisation instead with a performance drop of 6-7% 
+compared to the special-case approach.
 
-[2001/08/12]
-
-22.  As of this release, os.spawnv() and os.spawnve() now expose EMX's 
-library routines rather than use the emulation in os.py.
+17.  os.spawnv() and os.spawnve() expose EMX's library routines rather 
+than use the emulation in os.py.
 
 In order to make use of some of the features this makes available in 
 the OS/2 environment, you should peruse the relevant EMX documentation 
@@ -447,9 +569,9 @@
 practically used by/in Python or have the potential to compromise your 
 system's stability.
 
-23.  pythonpm.exe in previous releases was just python.exe with the 
-WINDOWAPI linker option set in the pythonpm.def file.  In practice, 
-this turns out to do nothing useful.
+18.  pythonpm.exe used to be just python.exe with the WINDOWAPI linker 
+option set in the pythonpm.def file.  In practice, this turns out to do 
+nothing useful.
 
 I have written a replacement which wraps the Python DLL in a genuine 
 Presentation Manager application.  This version actually runs the 
@@ -485,31 +607,17 @@
 will be a non-trivial effort.  I may be able to leverage the code in 
 Illya Vaes' Tcl/Tk port, which would make it easier.
 
-[2001/08/14]
+19.  os.chdir() uses EMX's _chdir2(), which supports changing both drive 
+and directory at once.  Similarly, os.getcwd() uses EMX's _getcwd() 
+which returns drive as well as path.
 
-24.  os.chdir() now uses EMX's _chdir2(), which supports changing 
-both drive and directory at once.  Similarly, os.getcwd() now uses 
-EMX's _getcwd() which returns drive as well as path.
+20.  pyconfig.h is installed in the Include subdirectory with all 
+other include files.
 
-[2001/12/08] - 2.2 Beta 2
-
-25.  pyconfig.h (previously known as config.h) is now located in the 
-Include subdirectory with all other include files.
-
-[2001/12/16] - 2.2 Release Candidate 1
-
-[2001/12/08] - 2.2 Final
-
-[2002/03/31] - 2.2.1 Release Candidate 2
-
-[2002/04/14] - 2.2.1 Final
-
-[2002/8/18]
-
-26.  now explicitly set the number of file handles available to a 
-Python process to 250.  EMX default is 40, which is insufficient for the 
-recently checked in security improvments to the tempfile regression 
-test (test_tempfile) which tries to create 100 temporary files.
+21.  the default build explicitly sets the number of file handles 
+available to a Python process to 250.  EMX default is 40, which is 
+insufficient for the tempfile regression test (test_tempfile) which 
+tries to create 100 temporary files.
 
 This setting can be overridden via the EMXOPT environment variable:
   set EMXOPT=-h250
@@ -517,6 +625,11 @@
 have it installed) can also be used to permanently change the setting in 
 python.exe - please refer to the EMX documentation for more information.
 
+22.  a pure python strptime module is now part of the Python standard
+library, superceding a platform specific extension module. This module
+leverages the strftime module, and as a result test_strptime fails
+due to the EMX strftime bug in item 20 above.
+
 ... probably other issues that I've not encountered, or don't remember :-(
 
 If you encounter other difficulties with this port, which can be 
@@ -548,12 +661,12 @@
 Constructive feedback, negative or positive, about this port is welcome 
 and should be addressed to me at the e-mail addresses below.
 
-I intend creating a private mailing list for announcements of fixes & 
-updates to this port.  If you wish to receive such e-mail announcments, 
-please send me an e-mail requesting that you be added to this list.
+I have a private mailing list for announcements of fixes & updates to 
+this port.  If you wish to receive such e-mail announcments, please send 
+me an e-mail requesting that you be added to this list.
 
 Andrew MacIntyre
 E-mail: andymac@bullseye.apana.org.au, or andymac@pcug.org.au
 Web:    http://www.andymac.org/
 
-18 August, 2001.
+18 April, 2003.
diff --git a/PC/os2emx/config.c b/PC/os2emx/config.c
index 0b21d56..010aa4f 100644
--- a/PC/os2emx/config.c
+++ b/PC/os2emx/config.c
@@ -41,21 +41,15 @@
 #ifdef WITH_THREAD
 extern void initthread();
 #endif
-#if !HAVE_DYNAMIC_LOADING
 extern void init_codecs();
-extern void init_curses();
-extern void init_curses_panel();
-extern void init_hotshot();
+extern void init_csv();
 extern void init_locale();
 extern void init_random();
 extern void init_sre();
 extern void init_symtable();
-extern void init_testcapi();
 extern void init_weakref();
 extern void initarray();
 extern void initbinascii();
-extern void initbsddb185();
-extern void initbz2();
 extern void initcPickle();
 extern void initcStringIO();
 extern void initcmath();
@@ -63,29 +57,36 @@
 extern void initdl();
 extern void initerrno();
 extern void initfcntl();
-extern void initfpectl();
-extern void initfpetest();
 extern void initimageop();
 extern void inititertools();
 extern void initmath();
 extern void initmd5();
 extern void initoperator();
-extern void initparser();
 extern void initpcre();
-extern void initpwd();
 extern void initregex();
 extern void initrgbimg();
-extern void initrotor();
 extern void initsha();
 extern void initstrop();
 extern void initstruct();
 extern void inittermios();
 extern void inittime();
 extern void inittiming();
-extern void initunicodedata();
 extern void initxreadlines();
 extern void initxxsubtype();
 extern void initzipimport();
+#if !HAVE_DYNAMIC_LOADING
+extern void init_curses();
+extern void init_curses_panel();
+extern void init_hotshot();
+extern void init_testcapi();
+extern void initbsddb185();
+extern void initbz2();
+extern void initfpectl();
+extern void initfpetest();
+extern void initparser();
+extern void initpwd();
+extern void initrotor();
+extern void initunicodedata();
 extern void initzlib();
 #ifdef USE_SOCKET
 extern void init_socket();
@@ -105,21 +106,15 @@
 #ifdef WITH_THREAD
 	{"thread", initthread},
 #endif
-#if !HAVE_DYNAMIC_LOADING
 	{"_codecs", init_codecs},
-	{"_curses", init_curses},
-	{"_curses_panel", init_curses_panel},
-	{"_hotshot", init_hotshot},
+	{"_csv", init_codecs},
 	{"_locale", init_locale},
 	{"_random", init_random},
 	{"_sre", init_sre},
 	{"_symtable", init_symtable},
-	{"_testcapi", init_testcapi},
 	{"_weakref", init_weakref},
 	{"array", initarray},
 	{"binascii", initbinascii},
-	{"bsddb185", initbsddb185},
-	{"bz2", initbz2},
 	{"cPickle", initcPickle},
 	{"cStringIO", initcStringIO},
 	{"cmath", initcmath},
@@ -127,29 +122,36 @@
 	{"dl", initdl},
 	{"errno", initerrno},
 	{"fcntl", initfcntl},
-	{"fpectl", initfpectl},
-	{"fpetest", initfpetest},
 	{"imageop", initimageop},
 	{"itertools", inititertools},
 	{"math", initmath},
 	{"md5", initmd5},
 	{"operator", initoperator},
-	{"parser", initparser},
 	{"pcre", initpcre},
-	{"pwd", initpwd},
 	{"regex", initregex},
 	{"rgbimg", initrgbimg},
-	{"rotor", initrotor},
 	{"sha", initsha},
 	{"strop", initstrop},
 	{"struct", initstruct},
 	{"termios", inittermios},
 	{"time", inittime},
 	{"timing", inittiming},
-	{"unicodedata", initunicodedata},
 	{"xreadlines", initxreadlines},
 	{"xxsubtype", initxxsubtype},
 	{"zipimport", initzipimport},
+#if !HAVE_DYNAMIC_LOADING
+	{"_curses", init_curses},
+	{"_curses_panel", init_curses_panel},
+	{"_hotshot", init_hotshot},
+	{"_testcapi", init_testcapi},
+	{"bsddb185", initbsddb185},
+	{"bz2", initbz2},
+	{"fpectl", initfpectl},
+	{"fpetest", initfpetest},
+	{"parser", initparser},
+	{"pwd", initpwd},
+	{"rotor", initrotor},
+	{"unicodedata", initunicodedata},
 	{"zlib", initzlib},
 #ifdef USE_SOCKET
 	{"_socket", init_socket},
