diff --git a/src/Allwmake b/src/Allwmake
index 35b8f55b886f902b5dfca438b36a36ba4f7caa93..f6e7907e32721347fec0d57a42d1210ae88c93c2 100755
--- a/src/Allwmake
+++ b/src/Allwmake
@@ -2,6 +2,12 @@
 cd ${0%/*} || exit 1    # run from this directory
 set -x
 
+# update version string if under Git
+git describe 2> /dev/null | \
+(read project_string \
+   && sed -e 's/WM_PROJECT_VERSION/\"'"${project_string}"'"/' \
+   OpenFOAM/global/global_raw.C >OpenFOAM/global/global.C)
+
 wmakeLnInclude -f OpenFOAM
 wmakeLnInclude -f OSspecific/$WM_OS
 Pstream/Allwmake
diff --git a/src/OpenFOAM/Make/files b/src/OpenFOAM/Make/files
index e24fd6b5ec4411c30138924dd05fdb3eb94a3959..a9708a3c30773a099382a2d87d624b088bb40406 100644
--- a/src/OpenFOAM/Make/files
+++ b/src/OpenFOAM/Make/files
@@ -1,4 +1,5 @@
-global/global.Cver
+global/global.C
+
 global/dimensionedConstants/dimensionedConstants.C
 global/argList/argList.C
 global/clock/clock.C
diff --git a/src/OpenFOAM/global/global.C b/src/OpenFOAM/global/global.C
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..38f900ef4efa8ce214a9edbb801843a70f6231d0 100644
--- a/src/OpenFOAM/global/global.C
+++ b/src/OpenFOAM/global/global.C
@@ -0,0 +1,78 @@
+/*-------------------------------*- C++ -*-----------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2008 OpenCFD Ltd.
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by the
+    Free Software Foundation; either version 2 of the License, or (at your
+    option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM; if not, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Description
+    Define the globals used in the FOAM library.  It is important that these
+    are constructed in the appropriate order to avoid the use of unconstructed
+    data in the global namespace.
+
+    This file gets preprocessed by the Allwmake script to replace
+    PROJECT_VERSION with the appropriate version number string.
+
+\*---------------------------------------------------------------------------*/
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+#include "foamVersion.H"
+
+const char* const Foam::FOAMversion = "dev_2008-10-29-197-gc1bfee3";
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// Setup an error handler for the global new operator
+
+#include "new.C"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// Global IO streams
+
+#include "IOstreams.C"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "JobInfo.H"
+bool Foam::JobInfo::constructed = false;
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// Global error definitions (initialised by construction)
+
+#include "messageStream.C"
+#include "error.C"
+#include "IOerror.C"
+#include "token.C"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// Read the debug and info switches
+
+#include "debug.C"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// Read and set cell models
+
+#include "globalCellModeller.C"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// Create the jobInfo file in the $FOAM_JOB_DIR/runningJobs directory
+
+#include "JobInfo.C"
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/global/global.Cver b/src/OpenFOAM/global/global_raw.C
similarity index 94%
rename from src/OpenFOAM/global/global.Cver
rename to src/OpenFOAM/global/global_raw.C
index e67b67b22a8352e2c27cb78564f6505f461cbb83..29c67cf3e0b02cde9e0870b1b27df1d8cbb76d93 100644
--- a/src/OpenFOAM/global/global.Cver
+++ b/src/OpenFOAM/global/global_raw.C
@@ -27,9 +27,8 @@ Description
     are constructed in the appropriate order to avoid the use of unconstructed
     data in the global namespace.
 
-    This file has the extension .ver to force it to be parsed by the script
-    which converts WM_PROJECT_VERSION into the appropriate version number
-    string.
+    This file gets preprocessed by the Allwmake script to replace
+    PROJECT_VERSION with the appropriate version number string.
 
 \*---------------------------------------------------------------------------*/
 
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C
index 1ec3f9d0f09ed27a549d4a274974b77d1d975b2d..6ed3f0c14f5fd9cdd6506ede3ef1afbc859c83c6 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C
@@ -3355,7 +3355,6 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::polyTopoChange::makeMesh
         faceZoneFlip_.clear();
         faceZoneFlip_.resize(0);
 
-        cellZone_.clear();
         cellZone_.clearStorage();
     }
 
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/generic/genericFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/basic/generic/genericFvPatchField.C
index aad79a3bcfdbb0ae5fa27e1dca92bb54cb466dda..d5f3ef05f294d64459539bf79cb151f22bef5dbc 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/generic/genericFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/basic/generic/genericFvPatchField.C
@@ -352,6 +352,96 @@ Foam::genericFvPatchField<Type>::genericFvPatchField
                             << exit(FatalIOError);
                     }
                 }
+                else if
+                (
+                    firstToken.isWord()
+                 && firstToken.wordToken() == "uniform"
+                )
+                {
+                    token fieldToken(is);
+
+                    if (!fieldToken.isPunctuation())
+                    {
+                        scalarFields_.insert
+                        (
+                            iter().keyword(),
+                            new scalarField
+                            (
+                                this->size(),
+                                fieldToken.scalarToken()
+                            )
+                        );
+                    }
+                    else
+                    {
+                        // Read as scalarList.
+                        is.putBack(fieldToken);
+
+                        scalarList l(is);
+
+                        if (l.size() == vector::nComponents)
+                        {
+                            vector vs(l[0], l[1], l[2]);
+
+                            vectorFields_.insert
+                            (
+                                iter().keyword(),
+                                new vectorField(this->size(), vs)
+                            );
+                        }
+                        else if (l.size() == sphericalTensor::nComponents)
+                        {
+                            sphericalTensor vs(l[0]);
+
+                            sphericalTensorFields_.insert
+                            (
+                                iter().keyword(),
+                                new sphericalTensorField(this->size(), vs)
+                            );
+                        }
+                        else if (l.size() == symmTensor::nComponents)
+                        {
+                            symmTensor vs(l[0], l[1], l[2], l[3], l[4], l[5]);
+
+                            symmTensorFields_.insert
+                            (
+                                iter().keyword(),
+                                new symmTensorField(this->size(), vs)
+                            );
+                        }
+                        else if (l.size() == tensor::nComponents)
+                        {
+                            tensor vs
+                            (
+                                l[0], l[1], l[2],
+                                l[3], l[4], l[5],
+                                l[6], l[7], l[8]
+                            );
+
+                            tensorFields_.insert
+                            (
+                                iter().keyword(),
+                                new tensorField(this->size(), vs)
+                            );
+                        }
+                        else
+                        {
+                            FatalIOErrorIn
+                            (
+                                "genericFvPatchField<Type>::genericFvPatchField"
+                                "(const fvPatch&, const Field<Type>&, "
+                                "const dictionary&)",
+                                dict
+                            )   << "\n    unrecognised native type " << l
+                                << "\n    on patch " << this->patch().name()
+                                << " of field "
+                                << this->dimensionedInternalField().name()
+                                << " in file "
+                                << this->dimensionedInternalField().objectPath()
+                                << exit(FatalIOError);
+                        }
+                    }
+                }
             }
         }
     }
@@ -557,7 +647,7 @@ void Foam::genericFvPatchField<Type>::rmap
         HashPtrTable<scalarField>::const_iterator dptfIter =
             dptf.scalarFields_.find(iter.key());
 
-        if (dptfIter != scalarFields_.end())
+        if (dptfIter != dptf.scalarFields_.end())
         {
             iter()->rmap(*dptfIter(), addr);
         }
@@ -573,7 +663,7 @@ void Foam::genericFvPatchField<Type>::rmap
         HashPtrTable<vectorField>::const_iterator dptfIter =
             dptf.vectorFields_.find(iter.key());
 
-        if (dptfIter != vectorFields_.end())
+        if (dptfIter != dptf.vectorFields_.end())
         {
             iter()->rmap(*dptfIter(), addr);
         }
@@ -590,7 +680,7 @@ void Foam::genericFvPatchField<Type>::rmap
         HashPtrTable<sphericalTensorField>::const_iterator dptfIter =
             dptf.sphericalTensorFields_.find(iter.key());
 
-        if (dptfIter != sphericalTensorFields_.end())
+        if (dptfIter != dptf.sphericalTensorFields_.end())
         {
             iter()->rmap(*dptfIter(), addr);
         }
@@ -607,7 +697,7 @@ void Foam::genericFvPatchField<Type>::rmap
         HashPtrTable<symmTensorField>::const_iterator dptfIter =
             dptf.symmTensorFields_.find(iter.key());
 
-        if (dptfIter != symmTensorFields_.end())
+        if (dptfIter != dptf.symmTensorFields_.end())
         {
             iter()->rmap(*dptfIter(), addr);
         }
@@ -623,7 +713,7 @@ void Foam::genericFvPatchField<Type>::rmap
         HashPtrTable<tensorField>::const_iterator dptfIter =
             dptf.tensorFields_.find(iter.key());
 
-        if (dptfIter != tensorFields_.end())
+        if (dptfIter != dptf.tensorFields_.end())
         {
             iter()->rmap(*dptfIter(), addr);
         }
diff --git a/wmake/rules/General/standard b/wmake/rules/General/standard
index 8e5e436d32aa2754691dbb1ad89418083daceb95..82d2a6c11ebe2317bb6fde241c7d481782b9613a 100644
--- a/wmake/rules/General/standard
+++ b/wmake/rules/General/standard
@@ -1,5 +1,3 @@
-include $(GENERAL_RULES)/version
-
 include $(GENERAL_RULES)/sourceToDep
 
 include $(GENERAL_RULES)/java
diff --git a/wmake/rules/General/version b/wmake/rules/General/version
deleted file mode 100644
index 805eb585613340ca8d7ffd986ce4078bb73be4c3..0000000000000000000000000000000000000000
--- a/wmake/rules/General/version
+++ /dev/null
@@ -1,6 +0,0 @@
-.SUFFIXES: .Cver
-
-Cvertoo = sed s/WM_PROJECT_VERSION/\"$(WM_PROJECT_VERSION)\"/ $$SOURCE > $*.C ; $(CC) $(c++FLAGS) -c $*.C -o $@ 
-
-.Cver.dep:
-	$(MAKE_DEP)