Bump the Windows build to use Sleepycat's 4.1.25.NC release (the
latest bsddb release without strong cryptography).
diff --git a/Misc/NEWS b/Misc/NEWS
index bfcddd9..fdc3730 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -32,6 +32,9 @@
 
 - fcntl now exposes the strops.h I_* constants.
 
+- Fix a crash on Solaris that occurred when calling close() on
+  an mmap'ed file which was already closed.  (SF patch #665913)
+
 - datetime changes:
 
   The datetime and datetimetz classes have been collapsed into a single
@@ -103,9 +106,6 @@
   possible to have timestamps that differ by a second, yet where
   datetimes constructed from them are equal.
 
-- Fix a crash on Solaris that occurred when calling close() on
-  an mmap'ed file which was already closed.  (SF patch #665913)
-
 Library
 -------
 
@@ -181,6 +181,9 @@
 Windows
 -------
 
+- The bsddb module now ships with Sleepycat's 4.1.25.NC, the latest
+  release without strong cryptography.
+
 - sys.path[0], if it contains a directory name, is now always an
   absolute pathname.
 
diff --git a/PCbuild/_bsddb.dsp b/PCbuild/_bsddb.dsp
index e1857c5..2bee39d 100644
--- a/PCbuild/_bsddb.dsp
+++ b/PCbuild/_bsddb.dsp
@@ -44,7 +44,7 @@
 # PROP Target_Dir ""
 F90=df.exe
 # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\Include" /I "..\PC" /I "..\..\db-4.0.14\build_win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\Include" /I "..\PC" /I "..\..\db-4.1.25\build_win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
@@ -54,7 +54,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\db-4.0.14\build_win32\Release_static\libdb40s.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"msvcrt" /out:"./_bsddb.pyd"
+# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\db-4.1.25\build_win32\Release_static\libdb41s.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"msvcrt" /out:"./_bsddb.pyd"
 # SUBTRACT LINK32 /pdb:none
 
 !ELSEIF  "$(CFG)" == "_bsddb - Win32 Debug"
@@ -72,7 +72,7 @@
 # PROP Target_Dir ""
 F90=df.exe
 # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\Include" /I "..\PC" /I "..\..\db-4.0.14\build_win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\Include" /I "..\PC" /I "..\..\db-4.1.25\build_win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
@@ -82,7 +82,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\db-4.0.14\build_win32\Release_static\libdb40s.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"msvcrtd" /out:"./_bsddb_d.pyd" /pdbtype:sept
+# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\db-4.1.25\build_win32\Release_static\libdb41s.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"msvcrtd" /out:"./_bsddb_d.pyd" /pdbtype:sept
 # SUBTRACT LINK32 /pdb:none
 
 !ENDIF 
diff --git a/PCbuild/bsddb_patch.txt b/PCbuild/bsddb_patch.txt
deleted file mode 100644
index d4c51bc..0000000
--- a/PCbuild/bsddb_patch.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-This patch is against Sleepycat's db-4.0.14 release.  It's not on the
-Sleepycat site.  It fixes cases of database corruption Barry (Warsaw)
-was seeing, and Barry got it from Sleepycat.
-
-*** db/db_reclaim.c.orig	2002/04/05 16:16:17	11.22
---- db/db_reclaim.c	2002/04/10 18:53:13	11.23
-***************
-*** 195,202 ****
-  				    dbp->log_fileid, p->pgno, &LSN(meta),
-  				    PGNO_BASE_MD, &ldbt, meta->free)) != 0)
-  					goto err;
-- 
-  				LSN(p) = LSN(meta);
-  				if ((ret =
-  				    __db_pg_alloc_log(dbp->dbenv,
-  				    param->dbc->txn, &LSN(meta), 0,
---- 195,202 ----
-  				    dbp->log_fileid, p->pgno, &LSN(meta),
-  				    PGNO_BASE_MD, &ldbt, meta->free)) != 0)
-  					goto err;
-  				LSN(p) = LSN(meta);
-+ 
-  				if ((ret =
-  				    __db_pg_alloc_log(dbp->dbenv,
-  				    param->dbc->txn, &LSN(meta), 0,
-***************
-*** 206,211 ****
---- 206,213 ----
-  					(void)__TLPUT(param->dbc, metalock);
-  					return (ret);
-  				}
-+ 				LSN(p) = LSN(meta);
-+ 
-  				if ((ret = mpf->put(mpf,
-  				     (PAGE *)meta, DB_MPOOL_DIRTY)) != 0) {
-  					(void)__TLPUT(param->dbc, metalock);
diff --git a/PCbuild/readme.txt b/PCbuild/readme.txt
index b6cd15c..0d7dc39 100644
--- a/PCbuild/readme.txt
+++ b/PCbuild/readme.txt
@@ -163,30 +163,27 @@
 
 
 _bsddb
-    XXX The Sleepycat release we use will probably change before
-    XXX 2.3a1.
-    Go to Sleepycat's patches page:
-        http://www.sleepycat.com/update/index.html
-    and download
-        4.0.14.zip
-    from the download page.  The file name is db-4.0.14.zip.  Unpack into
-        dist\db-4.0.14
+    Go to Sleepycat's download page:
+        http://www.sleepycat.com/download/
 
-    Apply the patch file bsddb_patch.txt in this (PCbuild) directory
-    against the file
-        dist\db-4.0.14\db\db_reclaim.c
+    and download version 4.1.25.  The file name is db-4.1.25.NC.zip.
+    XXX with or without strong cryptography?  I picked "without".
 
-    Go to
-        http://www.sleepycat.com/docs/ref/build_win/intro.html
-    and follow the instructions for building the Sleepycat software.
-    Build the Release version.
-    NOTE:  The instructions are for a later release of the software,
-    so use your imagination.  Berkeley_DB.dsw in this release was
-    also pre-MSVC6, so you'll be prompted to upgrade the format (say
-    yes, of course).  Choose configuration "db_buildall - Win32 Release",
-    and build db_buildall.exe.
+    Unpack into
+        dist\db-4.1.25
 
-    XXX We're actually linking against Release_static\libdb40s.lib.
+    [If using WinZip to unpack the db-4.1.25.NC distro, that requires
+     renaming the directory (to remove ".NC") after unpacking.
+    ]
+
+    Open
+        dist\db-4.1.25\docs\index.html
+
+    and follow the Windows instructions for building the Sleepycat
+    software.  Note that Berkeley_DB.dsw is in the build_win32 subdirectory.
+    Build the Release version ("build_all -- Win32 Release").
+
+    XXX We're actually linking against Release_static\libdb41s.lib.
     XXX This yields the following warnings:
 """
 Compiling...
@@ -201,6 +198,31 @@
 """
     XXX This isn't encouraging, but I don't know what to do about it.
 
+    To run extensive tests, pass "-u bsddb" to regrtest.py.  test_bsddb3.py
+    is then enabled.  Running in verbose mode may be helpful.
+
+    XXX The test_bsddb3 tests don't always pass, on Windows (according to
+    XXX me) or on Linux (according to Barry).  I had much better luck
+    XXX on Win2K than on Win98SE.  The common failure mode across platforms
+    XXX is
+    XXX     DBAgainError: (11, 'Resource temporarily unavailable -- unable
+    XXX                         to join the environment')
+    XXX
+    XXX and it appears timing-dependent.  On Win2K I also saw this once:
+    XXX
+    XXX test02_SimpleLocks (bsddb.test.test_thread.HashSimpleThreaded) ...
+    XXX Exception in thread reader 1:
+    XXX Traceback (most recent call last):
+    XXX File "C:\Code\python\lib\threading.py", line 411, in __bootstrap
+    XXX    self.run()
+    XXX File "C:\Code\python\lib\threading.py", line 399, in run
+    XXX    apply(self.__target, self.__args, self.__kwargs)
+    XXX File "C:\Code\python\lib\bsddb\test\test_thread.py", line 268, in
+    XXX                  readerThread
+    XXX    rec = c.next()
+    XXX DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed
+    XXX                                to resolve a deadlock')
+
 
 _ssl
     Python wrapper for the secure sockets library.