Index: ChangeLog
===================================================================
--- ChangeLog	(revision 14323)
+++ ChangeLog	(working copy)
@@ -1,219 +1,228 @@
-Fri Apr 16 09:53:05 GMT 2010  Richard Boulton <richard@tartarus.org>
-
-	* win32_api.mak,win32_backends_multi.mak,win32_matcher.mak,
-	  win32_tests.mak: Revert previous patch - was broken in several
-	  ways.
-
-Fri Apr 16 09:07:44 GMT 2010  Richard Boulton <richard@tartarus.org>
-
-	* win32_api.mak,win32_backends_multi.mak,win32_matcher.mak,
-	  win32_tests.mak: Updates to the windows build system from Charlie
-	  Hull - ticket #457.
-
-Tue Aug 25 16:32:54 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
-
-	* Makefile,config.mak,win32_geospatial.mak: Add geospatial lib.
-
-Tue Aug 25 16:41:00 GMT 2009  Charlie Hull <charlie@flax.co.uk>
-
-    * Makefile, win32_geospatial.mak, config.mak - add geospatial lib
-
-Fri Nov 20 11:49:07 GMT 2009  Richard Boulton <richard@tartarus.org>
-
-	* win32_backends_multi.mak,win32_matcher.mak: Patch from Charlie to
-	  add valuestreamdocument.cc and multi_valuelist.cc to build.
-
-Tue Oct 27 16:17:09 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
-
-	* win32_applications_omega.mak: Remove dirent.cc, update path to
-	  getopt.cc, add freemem.cc, add mkdtemp.obj to OMINDEX objects,
-	  and rename UTF8TEST_OBJS to UTF8CONVERTTEST_OBJS.
-
-Fri Oct 16 09:04:00 GMT 2009  Charlie Hull <charlie@flax.co.uk>
-
-	* config.h.win32,config.h.omega.win32: disable warning about macros
-	  with missing parameters.
-	* win32_tests.mak: add api_sortingold.cc
-	* win32_api.mak: remove sorter.cc, add keymaker.cc
-
-Mon Aug 24 10:40:00 GMT 2009  Charlie Hull <charlie@flax.co.uk>
-
-	* Makefile: Remove rules to make generate-exceptions.
-	* win32_api.mak: Remove serialisationcontext.cc, add registry.cc
-
-Tue Aug 04 15:30:00 GMT 2009  Charlie Hull <charlie@flax.co.uk>
-
-	* Makefile, win32_bindings_python.mak, config.mak, makebinaries.py:
-	  Add Python 2.6 option.
-
-Sun Aug 02 12:22:52 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
-
-	* win32_api.mak: Add matchspy files.
-
-Mon Jul 20 13:52:53 GMT 2009  Olly Betts <olly@survex.com>
-
-	* config.mak,win32_bindings_python.mak: Update to include Python 3.0
-	  support, ready for when then bindings support this.  From patch in
-	  ticket #346.
-
-Mon Jul 20 13:43:48 GMT 2009  Olly Betts <olly@survex.com>
-
-	* win32_api.mak: Update for added sources, from patch by Peter Kelm in
-	  ticket#346.
-
-Mon Jul 20 13:38:37 GMT 2009  Olly Betts <olly@survex.com>
-
-	* win32_matcher.mak: Update for removed sources, from patch by Peter
-	  Kelm in ticket#346.
-
-Fri May 08 12:55:32 GMT 2009  Olly Betts <olly@survex.com>
-
-	* config.mak,win32_bindings_python.mak,win32_tests.mak,
-	  win32_testsuite.mak: Update from Peter Kelm to work with SVN trunk
-	  (ticket#366).
-
-Tue May 05 12:42:26 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
-
-	* win32_matcher.mak: Add synoympostlist.cc to build.
-
-Fri May 01 15:40:48 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
-
-	* win32_tests.mak: Add api_replicate.cc and api_serialise.cc, and
-	  cleanup .obj files.
-
-Wed Apr 22 16:21:53 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
-
-	* makebinaries.py,win32_tests.mak: Add a script and some changes to
-	  the test makefile which got missed out of the previous commit.
-
-Tue Apr 21 10:34:00 GMT 2009  Charlie Hull <charlie@lemurconsulting.com>
-
-	* config.h.omega.win32: Update version numbers
-	* win32_tests.mak: add some new tests and reformat for clarity
-	* Makefile: MAKEALLBINDINGS now depends on COPYMAKFILES
-	* config.h.omega.win32: define 'rare' and 'usual'
-	* makebinaries.py: fix quotes
-	* makedepend.mak, Makefile: CLEAN now also cleans makedepend
-
-Wed Mar 25 12:49:00 GMT 2009  Charlie Hull <charlie@lemurconsulting.com>
-
-	* win32_weight.mak,config.mak,Makefile: add new makefile for
-	  /weight folder
-	* win32_api.mak,win32_matcher.mak,win32_backend_chert.mak,
-	  win32_common.mak: correct file lists
-	* win32_bin.mak,config.mak: remove Quartz bits, add
-	  xapian-replicate and xapian-replicate-server
-
-Thu Mar 19 11:55:00 GMT 2009  Charlie Hull <charlie@lemurconsulting.com>
-
-	* config.mak, win32_bindings_python.mak: add ability to build two
-	  different Python versions, and add example files, and change
-	  BUILDDIST to DIST for consistency with other bindings
-	* setup.py: add example & documentation files for Python
-	* win32_bindings_php.mak,win32_bindings_csharp.mak,
-	  win32_bindings_java-swig.mak,win32_bindings_ruby.mak: add example
-	  & doc files where they exist and DIST build target
-	* win32_bindings_php.mak,win32_bindings_csharp.mak,win32_examples.mak,
-	  win32_bin.mak: add Manifests into .exe or .dll and remove
-	  separate manifest files
-	* Makefile: add MAKEALLBINDINGS target for building all bindings
-	* README: update for the above changes
-	* win32_applications_omega.mak: add new file for omindex
-	* config.h.omega.win32: Update version numbers, undefine rare()
-
-Mon Feb 16 12:02:48 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
-
-	* win32_bindings_csharp.mak: Remove doubled file contents.
-
-Mon Dec 22 16:50:55 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
-
-	* version.rc.csharp,win32_bindings_csharp.mak: Add files missed
-	  from last commit.
-
-Mon Dec 22 16:49:46 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
-
-	* Makefile,README,config.h.omega.win32,config.mak,genversion.pl,
-	  win32_api.mak,win32_backends.mak,win32_backends_chert.mak,
-	  win32_backends_flint.mak,win32_perftest.mak: Add C# bindings to
-	  build system, and update with new files for replication in
-	  xapian-core.
-
-Thu Dec 11 12:04:11 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
-
-	* win32_tests.mak: Add support for new test file, api_backend.cc
-
-Thu Nov 06 12:50:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
-
-	* win32_perftest.mak: Call collate-apitest in the new way.  Add
-	  libtest.lib.
-	* win32_tests.mak: Call collate-apitest in the
-	  new way.  Add api_spelling.cc.  Improve "nmake CLEAN" target.
-	* win32_api.mak: omvalueiterator.cc renamed to valueiterator.cc,
-	  add documentvaluelist.cc.
-	* win32_backends.mak: add dbfactory_remote.cc, valuelist.cc and
-	  slowvaluelist.cc.
-	* win32_backends_remote.mak: rename net_document.cc to
-	  remote-document.cc.
-	* config.mak: Change paths to XAPIAN_APPLICATIONS and
-	  XAPIAN_BINDINGS to be appropriate for a SVN checkout, rather than
-	  for unpacked tarballs.  Add rpcrt4.lib for UUID functions. Remove
-	  libquartz.lib, and add libchert.lib.
-	* win32_common.mak: Add win32_uuid.cc. (Not yet in trunk, but
-	  needed for windows compile - currently requires patch attached to
-	  bug #303.)
-	* config.h.win32: Update version numbers (to 1.1.0, to match
-	  configure.ac). Define 'usual' keyword to identity, since we don't
-	  have this in MSVC.
-
-Mon Sep 08 09:59:17 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
-
-	* genversion.pl: Update to match new configure.ac (cope with the []'s
-	  which have been added).
-
-Wed Aug 20 09:31:47 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
-
-	* README: Remove trailing whitespace.
-
-Thu Aug 14 15:42:00 GMT 2008  Charlie Hull <charlie@lemurconsulting.com>
-
-	* win32_bindings_ruby.mak,config.mak,README,Makefile: Added new
-	  Ruby bindings makefile written by Zsolt Sz. Sztupák.  Update list
-	  of "what works" in README.
-
-Sun Jun 29 06:53:28 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
-
-	* version.rc.java-swig,version.rc.php,version.rc.python: Change
-	  "Copyright ... Xapian" messages to a note to consult the source
-	  code - Xapian isn't a legal entity, so nothing can be "(C)
-	  Xapian".
-
-Wed Jun 25 13:18:50 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
-
-	* Makefile: Patch from Charlie to fix some paths for "cd".
-
-Tue Jun 24 16:06:57 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
-
-	* NEWS: Add note about Java-SWIG makefiles.
-
-Tue Jun 24 16:06:21 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
-
-	* win32_backends_chert.mak: Add chert_alldocsmodifiedpostlist
-	  source files.
-	* win32_testsuite.mak: Add backendmanager_remote source file.
-
-Thu Jun 05 17:29:16 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
-
-	* win32_expand.mak: Replace reference to expand.cc and expand.obj
-	  with esetinternal.cc and esetinternal.obj - expand.cc has now
-	  been removed, and esetinternal.cc added.
-
-Thu Jun 05 17:11:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
-
-	* win32_bin.mak: Remove comments about the now removed quartz
-	  utilities, and a reference to them in the CLEAN rule.
-	* README: Remove trailing whitespace.  Clean up list of "what
-	  works".
-
-Thu Jun 05 17:04:26 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
-
-	* Start of ChangeLog.
+Fri  16 10:51:42 GMT 2010  Charlie Hull <charlie@flax.co.uk>
+
+	* Makefile,config.mak,version.h.in,win32_backends.mak,
+	  win32_backends_brass.mak,win32_backends_chert.mak,
+	  win32_backends_flint.mak,win32_bin.mak,win32_testsuite.mak:
+        add in Brass backend, move flint_lock.cc to backends root
+    * win32_geospatial.mak: replace latlong_distance_sorter.cc 
+    with latlong_distance_keymaker.cc
+
+Fri Apr 16 09:53:05 GMT 2010  Richard Boulton <richard@tartarus.org>
+
+	* win32_api.mak,win32_backends_multi.mak,win32_matcher.mak,
+	  win32_tests.mak: Revert previous patch - was broken in several
+	  ways.
+
+Fri Apr 16 09:07:44 GMT 2010  Richard Boulton <richard@tartarus.org>
+
+	* win32_api.mak,win32_backends_multi.mak,win32_matcher.mak,
+	  win32_tests.mak: Updates to the windows build system from Charlie
+	  Hull - ticket #457.
+
+Tue Aug 25 16:32:54 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
+
+	* Makefile,config.mak,win32_geospatial.mak: Add geospatial lib.
+
+Tue Aug 25 16:41:00 GMT 2009  Charlie Hull <charlie@flax.co.uk>
+
+    * Makefile, win32_geospatial.mak, config.mak - add geospatial lib
+
+Fri Nov 20 11:49:07 GMT 2009  Richard Boulton <richard@tartarus.org>
+
+	* win32_backends_multi.mak,win32_matcher.mak: Patch from Charlie to
+	  add valuestreamdocument.cc and multi_valuelist.cc to build.
+
+Tue Oct 27 16:17:09 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
+
+	* win32_applications_omega.mak: Remove dirent.cc, update path to
+	  getopt.cc, add freemem.cc, add mkdtemp.obj to OMINDEX objects,
+	  and rename UTF8TEST_OBJS to UTF8CONVERTTEST_OBJS.
+
+Fri Oct 16 09:04:00 GMT 2009  Charlie Hull <charlie@flax.co.uk>
+
+	* config.h.win32,config.h.omega.win32: disable warning about macros
+	  with missing parameters.
+	* win32_tests.mak: add api_sortingold.cc
+	* win32_api.mak: remove sorter.cc, add keymaker.cc
+
+Mon Aug 24 10:40:00 GMT 2009  Charlie Hull <charlie@flax.co.uk>
+
+	* Makefile: Remove rules to make generate-exceptions.
+	* win32_api.mak: Remove serialisationcontext.cc, add registry.cc
+
+Tue Aug 04 15:30:00 GMT 2009  Charlie Hull <charlie@flax.co.uk>
+
+	* Makefile, win32_bindings_python.mak, config.mak, makebinaries.py:
+	  Add Python 2.6 option.
+
+Sun Aug 02 12:22:52 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
+
+	* win32_api.mak: Add matchspy files.
+
+Mon Jul 20 13:52:53 GMT 2009  Olly Betts <olly@survex.com>
+
+	* config.mak,win32_bindings_python.mak: Update to include Python 3.0
+	  support, ready for when then bindings support this.  From patch in
+	  ticket #346.
+
+Mon Jul 20 13:43:48 GMT 2009  Olly Betts <olly@survex.com>
+
+	* win32_api.mak: Update for added sources, from patch by Peter Kelm in
+	  ticket#346.
+
+Mon Jul 20 13:38:37 GMT 2009  Olly Betts <olly@survex.com>
+
+	* win32_matcher.mak: Update for removed sources, from patch by Peter
+	  Kelm in ticket#346.
+
+Fri May 08 12:55:32 GMT 2009  Olly Betts <olly@survex.com>
+
+	* config.mak,win32_bindings_python.mak,win32_tests.mak,
+	  win32_testsuite.mak: Update from Peter Kelm to work with SVN trunk
+	  (ticket#366).
+
+Tue May 05 12:42:26 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
+
+	* win32_matcher.mak: Add synoympostlist.cc to build.
+
+Fri May 01 15:40:48 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
+
+	* win32_tests.mak: Add api_replicate.cc and api_serialise.cc, and
+	  cleanup .obj files.
+
+Wed Apr 22 16:21:53 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
+
+	* makebinaries.py,win32_tests.mak: Add a script and some changes to
+	  the test makefile which got missed out of the previous commit.
+
+Tue Apr 21 10:34:00 GMT 2009  Charlie Hull <charlie@lemurconsulting.com>
+
+	* config.h.omega.win32: Update version numbers
+	* win32_tests.mak: add some new tests and reformat for clarity
+	* Makefile: MAKEALLBINDINGS now depends on COPYMAKFILES
+	* config.h.omega.win32: define 'rare' and 'usual'
+	* makebinaries.py: fix quotes
+	* makedepend.mak, Makefile: CLEAN now also cleans makedepend
+
+Wed Mar 25 12:49:00 GMT 2009  Charlie Hull <charlie@lemurconsulting.com>
+
+	* win32_weight.mak,config.mak,Makefile: add new makefile for
+	  /weight folder
+	* win32_api.mak,win32_matcher.mak,win32_backend_chert.mak,
+	  win32_common.mak: correct file lists
+	* win32_bin.mak,config.mak: remove Quartz bits, add
+	  xapian-replicate and xapian-replicate-server
+
+Thu Mar 19 11:55:00 GMT 2009  Charlie Hull <charlie@lemurconsulting.com>
+
+	* config.mak, win32_bindings_python.mak: add ability to build two
+	  different Python versions, and add example files, and change
+	  BUILDDIST to DIST for consistency with other bindings
+	* setup.py: add example & documentation files for Python
+	* win32_bindings_php.mak,win32_bindings_csharp.mak,
+	  win32_bindings_java-swig.mak,win32_bindings_ruby.mak: add example
+	  & doc files where they exist and DIST build target
+	* win32_bindings_php.mak,win32_bindings_csharp.mak,win32_examples.mak,
+	  win32_bin.mak: add Manifests into .exe or .dll and remove
+	  separate manifest files
+	* Makefile: add MAKEALLBINDINGS target for building all bindings
+	* README: update for the above changes
+	* win32_applications_omega.mak: add new file for omindex
+	* config.h.omega.win32: Update version numbers, undefine rare()
+
+Mon Feb 16 12:02:48 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
+
+	* win32_bindings_csharp.mak: Remove doubled file contents.
+
+Mon Dec 22 16:50:55 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
+
+	* version.rc.csharp,win32_bindings_csharp.mak: Add files missed
+	  from last commit.
+
+Mon Dec 22 16:49:46 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
+
+	* Makefile,README,config.h.omega.win32,config.mak,genversion.pl,
+	  win32_api.mak,win32_backends.mak,win32_backends_chert.mak,
+	  win32_backends_flint.mak,win32_perftest.mak: Add C# bindings to
+	  build system, and update with new files for replication in
+	  xapian-core.
+
+Thu Dec 11 12:04:11 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
+
+	* win32_tests.mak: Add support for new test file, api_backend.cc
+
+Thu Nov 06 12:50:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
+
+	* win32_perftest.mak: Call collate-apitest in the new way.  Add
+	  libtest.lib.
+	* win32_tests.mak: Call collate-apitest in the
+	  new way.  Add api_spelling.cc.  Improve "nmake CLEAN" target.
+	* win32_api.mak: omvalueiterator.cc renamed to valueiterator.cc,
+	  add documentvaluelist.cc.
+	* win32_backends.mak: add dbfactory_remote.cc, valuelist.cc and
+	  slowvaluelist.cc.
+	* win32_backends_remote.mak: rename net_document.cc to
+	  remote-document.cc.
+	* config.mak: Change paths to XAPIAN_APPLICATIONS and
+	  XAPIAN_BINDINGS to be appropriate for a SVN checkout, rather than
+	  for unpacked tarballs.  Add rpcrt4.lib for UUID functions. Remove
+	  libquartz.lib, and add libchert.lib.
+	* win32_common.mak: Add win32_uuid.cc. (Not yet in trunk, but
+	  needed for windows compile - currently requires patch attached to
+	  bug #303.)
+	* config.h.win32: Update version numbers (to 1.1.0, to match
+	  configure.ac). Define 'usual' keyword to identity, since we don't
+	  have this in MSVC.
+
+Mon Sep 08 09:59:17 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
+
+	* genversion.pl: Update to match new configure.ac (cope with the []'s
+	  which have been added).
+
+Wed Aug 20 09:31:47 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
+
+	* README: Remove trailing whitespace.
+
+Thu Aug 14 15:42:00 GMT 2008  Charlie Hull <charlie@lemurconsulting.com>
+
+	* win32_bindings_ruby.mak,config.mak,README,Makefile: Added new
+	  Ruby bindings makefile written by Zsolt Sz. Sztupák.  Update list
+	  of "what works" in README.
+
+Sun Jun 29 06:53:28 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
+
+	* version.rc.java-swig,version.rc.php,version.rc.python: Change
+	  "Copyright ... Xapian" messages to a note to consult the source
+	  code - Xapian isn't a legal entity, so nothing can be "(C)
+	  Xapian".
+
+Wed Jun 25 13:18:50 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
+
+	* Makefile: Patch from Charlie to fix some paths for "cd".
+
+Tue Jun 24 16:06:57 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
+
+	* NEWS: Add note about Java-SWIG makefiles.
+
+Tue Jun 24 16:06:21 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
+
+	* win32_backends_chert.mak: Add chert_alldocsmodifiedpostlist
+	  source files.
+	* win32_testsuite.mak: Add backendmanager_remote source file.
+
+Thu Jun 05 17:29:16 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
+
+	* win32_expand.mak: Replace reference to expand.cc and expand.obj
+	  with esetinternal.cc and esetinternal.obj - expand.cc has now
+	  been removed, and esetinternal.cc added.
+
+Thu Jun 05 17:11:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
+
+	* win32_bin.mak: Remove comments about the now removed quartz
+	  utilities, and a reference to them in the CLEAN rule.
+	* README: Remove trailing whitespace.  Clean up list of "what
+	  works".
+
+Thu Jun 05 17:04:26 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
+
+	* Start of ChangeLog.
Index: config.mak
===================================================================
--- config.mak	(revision 14323)
+++ config.mak	(working copy)
@@ -240,6 +240,7 @@
  "$(OUTLIBDIR)\libexpand.lib"  \
  "$(OUTLIBDIR)\libchert.lib" \
  "$(OUTLIBDIR)\libflint.lib" \
+ "$(OUTLIBDIR)\libbrass.lib" \
  "$(OUTLIBDIR)\libinmemory.lib" \
  "$(OUTLIBDIR)\libmulti.lib" \
  "$(OUTLIBDIR)\libmatcher.lib"  \
Index: Makefile
===================================================================
--- Makefile	(revision 14323)
+++ Makefile	(working copy)
@@ -106,6 +106,7 @@
    copy  win32_backends.mak ..\backends\Makefile
    copy  win32_backends_flint.mak ..\backends\flint\Makefile
    copy  win32_backends_chert.mak ..\backends\chert\Makefile
+   copy  win32_backends_brass.mak ..\backends\brass\Makefile
    copy  win32_backends_inmemory.mak ..\backends\inmemory\Makefile
    copy  win32_backends_multi.mak ..\backends\multi\Makefile
    copy  win32_backends_remote.mak ..\backends\remote\Makefile
Index: version.h.in
===================================================================
--- version.h.in	(revision 14323)
+++ version.h.in	(working copy)
@@ -28,6 +28,7 @@
 #define XAPIAN_MINOR_VERSION @MINOR_VERSION@
 #define XAPIAN_REVISION @REVISION@
 
+#define XAPIAN_HAS_BRASS_BACKEND 1
 #define XAPIAN_HAS_CHERT_BACKEND 1
 #define XAPIAN_HAS_FLINT_BACKEND 1
 #define XAPIAN_HAS_QUARTZ_BACKEND 1
Index: win32_backends.mak
===================================================================
--- win32_backends.mak	(revision 14323)
+++ win32_backends.mak	(working copy)
@@ -15,6 +15,7 @@
     "$(OUTDIR)\libinmemory.lib" \
     "$(OUTDIR)\libremote.lib" \
     "$(OUTDIR)\libflint.lib" \
+    "$(OUTDIR)\libbrass.lib" \
     "$(OUTDIR)\libchert.lib" \
     $(NULL)
 
@@ -25,7 +26,8 @@
         $(INTDIR)\alltermslist.obj \
         $(INTDIR)\valuelist.obj \
         $(INTDIR)\slowvaluelist.obj \
-        $(INTDIR)\contiguousalldocspostlist.obj
+        $(INTDIR)\contiguousalldocspostlist.obj \
+        $(INTDIR)\flint_lock.obj 
 
 SRCS=   $(INTDIR)\database.cc \
         $(INTDIR)\databasereplicator.cc\
@@ -34,7 +36,8 @@
         $(INTDIR)\alltermslist.cc \
         $(INTDIR)\valuelist.cc \
         $(INTDIR)\slowvaluelist.cc \
-        $(INTDIR)\contiguousalldocspostlist.cc
+        $(INTDIR)\contiguousalldocspostlist.cc \
+        $(INTDIR)\flint_lock.cc
 
 
 	  
@@ -49,6 +52,8 @@
 	nmake /$(MAKEFLAGS) CLEAN DEBUG=$(DEBUG) 
 	cd ..\flint
 	nmake /$(MAKEFLAGS) CLEAN DEBUG=$(DEBUG) 
+	cd ..\brass
+	nmake /$(MAKEFLAGS) CLEAN DEBUG=$(DEBUG) 
 	cd ..\inmemory
 	nmake /$(MAKEFLAGS) CLEAN DEBUG=$(DEBUG) 
 	cd ..\multi
@@ -83,6 +88,11 @@
        nmake $(MAKEMACRO) /$(MAKEFLAGS) CFG="$(CFG)" DEBUG="$(DEBUG)"
        cd ..
 
+"$(OUTDIR)\libbrass.lib":
+       cd brass
+       nmake $(MAKEMACRO) /$(MAKEFLAGS) CFG="$(CFG)" DEBUG="$(DEBUG)"
+       cd ..
+       
 "$(OUTDIR)\libinmemory.lib":
        cd inmemory
        nmake $(MAKEMACRO) /$(MAKEFLAGS) CFG="$(CFG)" DEBUG="$(DEBUG)"
Index: win32_backends_brass.mak
===================================================================
--- win32_backends_brass.mak	(revision 0)
+++ win32_backends_brass.mak	(revision 0)
@@ -0,0 +1,113 @@
+# Makefile for Microsoft Visual C++ 7.0 (or compatible)
+#  by Charlie Hull, Lemur Consulting Ltd.
+# www.lemurconsulting.com
+
+# Will build a Win32 static library (non-debug) libbrass.lib
+
+!INCLUDE ..\..\win32\config.mak
+
+OUTDIR=..\..\win32\$(XAPIAN_DEBUG_OR_RELEASE)\libs
+INTDIR=.\
+
+ALL : "$(OUTDIR)\libbrass.lib"  "$(OUTDIR)\libbrassbtreecheck.lib" 
+
+LIBBRASSBTREECHECK_OBJS= \
+                $(INTDIR)\brass_check.obj
+
+OBJS= \
+                $(INTDIR)\brass_alldocspostlist.obj\
+                $(INTDIR)\brass_alltermslist.obj\
+                $(INTDIR)\brass_btreebase.obj\
+                $(INTDIR)\brass_cursor.obj\
+                $(INTDIR)\brass_database.obj\
+                $(INTDIR)\brass_databasereplicator.obj\
+                $(INTDIR)\brass_dbstats.obj\
+                $(INTDIR)\brass_document.obj\
+                $(INTDIR)\brass_inverter.obj\
+                $(INTDIR)\brass_io.obj\
+                $(INTDIR)\brass_metadata.obj\
+                $(INTDIR)\brass_positionlist.obj\
+                $(INTDIR)\brass_postlist.obj\
+                $(INTDIR)\brass_record.obj\
+                $(INTDIR)\brass_spelling.obj\
+                $(INTDIR)\brass_spellingwordslist.obj\
+                $(INTDIR)\brass_synonym.obj\
+                $(INTDIR)\brass_table.obj\
+                $(INTDIR)\brass_termlist.obj\
+                $(INTDIR)\brass_termlisttable.obj\
+                $(INTDIR)\brass_values.obj\
+                $(INTDIR)\brass_valuelist.obj\
+                $(INTDIR)\brass_version.obj
+
+SRCS= \
+                $(INTDIR)\brass_alldocspostlist.cc\
+                $(INTDIR)\brass_alltermslist.cc\
+                $(INTDIR)\brass_btreebase.cc\
+                $(INTDIR)\brass_cursor.cc\
+                $(INTDIR)\brass_database.cc\
+                $(INTDIR)\brass_databasereplicator.cc\
+                $(INTDIR)\brass_dbstats.cc\
+                $(INTDIR)\brass_document.cc\
+                $(INTDIR)\brass_inverter.cc\
+                $(INTDIR)\brass_io.cc\
+                $(INTDIR)\brass_metadata.cc\
+                $(INTDIR)\brass_positionlist.cc\
+                $(INTDIR)\brass_postlist.cc\
+                $(INTDIR)\brass_record.cc\
+                $(INTDIR)\brass_spelling.cc\
+                $(INTDIR)\brass_spellingwordslist.cc\
+                $(INTDIR)\brass_synonym.cc\
+                $(INTDIR)\brass_table.cc\
+                $(INTDIR)\brass_termlist.cc\
+                $(INTDIR)\brass_termlisttable.cc\
+                $(INTDIR)\brass_values.cc\
+                $(INTDIR)\brass_valuelist.cc\
+                $(INTDIR)\brass_version.cc\
+                $(INTDIR)\brass_check.cc
+
+CLEAN :
+    -@erase "$(OUTDIR)\libbrass.lib" 
+    -@erase "$(OUTDIR)\libbrassbtreecheck.lib"
+    -@erase "*.pch"
+    -@erase "$(INTDIR)\*.pdb"
+    -@erase "$(INTDIR)\getopt.obj"
+    -@erase "$(INTDIR)\brass_check.obj"
+    -@erase $(OBJS)
+
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)-$(NULL)" mkdir "$(OUTDIR)"
+
+CPP_PROJ=$(CPPFLAGS_EXTRA) \
+ -I "..\.." -I "..\..\include" -I"..\..\common" -I"..\..\languages" \
+ -Fo"$(INTDIR)\\" 
+ 
+CPP_OBJS=..\..\win32\$(XAPIAN_DEBUG_OR_RELEASE)
+CPP_SBRS=.
+
+"$(OUTDIR)\libbrass.lib" : "$(OUTDIR)" $(DEF_FILE) $(OBJS)
+    $(LIB32) @<<
+  $(LIB32_FLAGS) -out:"$(OUTDIR)\libbrass.lib" $(DEF_FLAGS) $(OBJS)
+<<
+
+"$(OUTDIR)\libbrassbtreecheck.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIBBRASSBTREECHECK_OBJS)
+    $(LIB32) @<<
+  $(LIB32_FLAGS) -out:"$(OUTDIR)\libbrassbtreecheck.lib" $(DEF_FLAGS) $(LIBBRASSBTREECHECK_OBJS)
+<<
+
+# inference rules, showing how to create one type of file from another with the same root name
+{.}.cc{$(INTDIR)}.obj::
+	$(CPP) @<<
+	$(CPP_PROJ) $< 
+<<
+
+{.}.cc{$(CPP_SBRS)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+# Calculate any header dependencies and automatically insert them into this file
+HEADERS :
+            if exist "..\win32\$(DEPEND)" ..\win32\$(DEPEND) $(DEPEND_FLAGS) -- $(CPP_PROJ) -- $(SRCS) -I"$(INCLUDE)" 
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
Index: win32_backends_chert.mak
===================================================================
--- win32_backends_chert.mak	(revision 14323)
+++ win32_backends_chert.mak	(working copy)
@@ -25,7 +25,6 @@
                 $(INTDIR)\chert_dbstats.obj\
                 $(INTDIR)\chert_document.obj\
                 $(INTDIR)\chert_io.obj\
-                $(INTDIR)\chert_lock.obj\
                 $(INTDIR)\chert_metadata.obj\
                 $(INTDIR)\chert_modifiedpostlist.obj\
                 $(INTDIR)\chert_positionlist.obj\
@@ -52,7 +51,6 @@
                 $(INTDIR)\chert_dbstats.cc\
                 $(INTDIR)\chert_document.cc\
                 $(INTDIR)\chert_io.cc\
-                $(INTDIR)\chert_lock.cc\
                 $(INTDIR)\chert_metadata.cc\
                 $(INTDIR)\chert_modifiedpostlist.cc\
                 $(INTDIR)\chert_positionlist.cc\
Index: win32_backends_flint.mak
===================================================================
--- win32_backends_flint.mak	(revision 14323)
+++ win32_backends_flint.mak	(working copy)
@@ -25,7 +25,6 @@
                 $(INTDIR)\flint_databasereplicator.obj\
                 $(INTDIR)\flint_document.obj\
                 $(INTDIR)\flint_io.obj\
-                $(INTDIR)\flint_lock.obj\
                 $(INTDIR)\flint_metadata.obj\
                 $(INTDIR)\flint_modifiedpostlist.obj\
                 $(INTDIR)\flint_positionlist.obj\
@@ -49,7 +48,6 @@
                 $(INTDIR)\flint_databasereplicator.cc\
                 $(INTDIR)\flint_document.cc\
                 $(INTDIR)\flint_io.cc\
-                $(INTDIR)\flint_lock.cc\
                 $(INTDIR)\flint_metadata.cc\
                 $(INTDIR)\flint_modifiedpostlist.cc\
                 $(INTDIR)\flint_positionlist.cc\
Index: win32_bin.mak
===================================================================
--- win32_bin.mak	(revision 14323)
+++ win32_bin.mak	(working copy)
@@ -24,6 +24,9 @@
            
 SRCS = \
 	"$(INTDIR)\xapian-compact.cc" \
+    "$(INTDIR)\xapian-compact-flint.cc" \
+    "$(INTDIR)\xapian-compact-brass.cc" \
+    "$(INTDIR)\xapian-compact-chert.cc" \
 	"$(INTDIR)\xapian-progsrv.cc" \
 	"$(INTDIR)\xapian-tcpsrv.cc" \
 	"$(INTDIR)\xapian-inspect.cc" \
@@ -35,7 +38,7 @@
 	   
 ALL : $(PROGRAMS)
 
-XAPIAN_COMPACT_OBJS= "$(INTDIR)\xapian-compact.obj" 
+XAPIAN_COMPACT_OBJS= "$(INTDIR)\xapian-compact.obj" "$(INTDIR)\xapian-compact-brass.obj" "$(INTDIR)\xapian-compact-flint.obj" "$(INTDIR)\xapian-compact-chert.obj"  
 
 XAPIAN_PROGSRV_OBJS= "$(INTDIR)\xapian-progsrv.obj" 
 
@@ -43,7 +46,7 @@
 
 XAPIAN_INSPECT_OBJS= "$(INTDIR)\xapian-inspect.obj" 
 
-XAPIAN_CHECK_OBJS= "$(INTDIR)\xapian-check.obj"  "$(INTDIR)\xapian-check-flint.obj" 
+XAPIAN_CHECK_OBJS= "$(INTDIR)\xapian-check.obj" "$(INTDIR)\xapian-check-flint.obj" "$(INTDIR)\xapian-check-chert.obj" "$(INTDIR)\xapian-check-brass.obj" 
 
 XAPIAN_REPLICATE_OBJS= "$(INTDIR)\xapian-replicate.obj" 
 
@@ -66,7 +69,7 @@
     if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
 
 CPP_PROJ=$(CPPFLAGS_EXTRA)  \
- /I ".." /I "..\testsuite"  /I"..\backends\flint" /I"..\backends\chert" \
+ /I ".." /I "..\testsuite"  /I"..\backends\flint" /I"..\backends\chert" /I"..\backends\brass" \
  /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /Tp$(INPUTNAME)
 
 CPP_OBJS=..\win32\$(XAPIAN_DEBUG_OR_RELEASE)
@@ -114,7 +117,7 @@
 "$(OUTDIR)\xapian-check.exe" : "$(OUTDIR)" $(DEF_FILE) $(XAPIAN_CHECK_OBJS) \
                              $(PROGRAM_DEPENDENCIES)
     $(LINK32) @<<
-  $(ALL_LINK32_FLAGS) /out:"$(OUTDIR)\xapian-check.exe" $(DEF_FLAGS) $(XAPIAN_CHECK_OBJS) "$(OUTLIBDIR)\libflintbtreecheck.lib" "$(OUTLIBDIR)\libchertbtreecheck.lib"
+  $(ALL_LINK32_FLAGS) /out:"$(OUTDIR)\xapian-check.exe" $(DEF_FLAGS) $(XAPIAN_CHECK_OBJS) "$(OUTLIBDIR)\libflintbtreecheck.lib" "$(OUTLIBDIR)\libchertbtreecheck.lib" "$(OUTLIBDIR)\libbrassbtreecheck.lib"
 <<
     $(MANIFEST) "$(OUTDIR)\xapian-check.exe.manifest" -outputresource:"$(OUTDIR)\xapian-check.exe;1"
     -@erase "$(OUTDIR)\xapian-check.exe.manifest"
Index: win32_geospatial.mak
===================================================================
--- win32_geospatial.mak	(revision 14323)
+++ win32_geospatial.mak	(working copy)
@@ -13,7 +13,7 @@
 
 OBJS= \
 	$(INTDIR)\htmcalc.obj \
-	$(INTDIR)\latlong_distance_sorter.obj \
+	$(INTDIR)\latlong_distance_keymaker.obj \
 	$(INTDIR)\latlong_match_decider.obj \
 	$(INTDIR)\latlong_posting_source.obj \
 	$(INTDIR)\latlongcoord.obj \
@@ -22,7 +22,7 @@
 
 SRCS= \
 	$(INTDIR)\htmcalc.cc \
-	$(INTDIR)\latlong_distance_sorter.cc \
+	$(INTDIR)\latlong_distance_keymaker.cc \
 	$(INTDIR)\latlong_match_decider.cc \
 	$(INTDIR)\latlong_posting_source.cc \
 	$(INTDIR)\latlongcoord.cc \
Index: win32_matcher.mak
===================================================================
--- win32_matcher.mak	(revision 14323)
+++ win32_matcher.mak	(working copy)
@@ -61,7 +61,7 @@
     $(INTDIR)\synonympostlist.cc\
     $(INTDIR)\valuerangepostlist.cc\
     $(INTDIR)\valuegepostlist.cc\
-    $(INTDIR)\valuestreamdocument.cc\
+    $(INTDIR)\valuestreamdocument.cc \
     $(INTDIR)\xorpostlist.cc\
     $(INTDIR)\remotesubmatch.cc
 
Index: win32_testsuite.mak
===================================================================
--- win32_testsuite.mak	(revision 14323)
+++ win32_testsuite.mak	(working copy)
@@ -22,6 +22,7 @@
         $(INTDIR)\backendmanager.obj \
         $(INTDIR)\backendmanager_flint.obj \
         $(INTDIR)\backendmanager_chert.obj \
+        $(INTDIR)\backendmanager_brass.obj \
         $(INTDIR)\backendmanager_inmemory.obj \
         $(INTDIR)\backendmanager_multi.obj \
         $(INTDIR)\backendmanager_remote.obj \
@@ -38,6 +39,7 @@
         $(INTDIR)\backendmanager.cc \
         $(INTDIR)\backendmanager_flint.cc \
         $(INTDIR)\backendmanager_chert.cc \
+        $(INTDIR)\backendmanager_brass.cc \
         $(INTDIR)\backendmanager_inmemory.cc \
         $(INTDIR)\backendmanager_multi.cc \
         $(INTDIR)\backendmanager_remote.cc \
