diff --git a/applications/test/string/stringTest.C b/applications/test/string/stringTest.C
index b8442102f395dd530b6a6e0a192ea7c9965ffeb6..2ed59bf88f7b4ab293a37bfe71b8251d51e38aea 100644
--- a/applications/test/string/stringTest.C
+++ b/applications/test/string/stringTest.C
@@ -70,6 +70,28 @@ int main(int argc, char *argv[])
     string test2("~OpenFOAM/controlDict");
     Info<< test2 << " => " << test2.expand() << endl;
 
+    // replace controlDict with "newName"
+    {
+        string::size_type i = test2.rfind('/');
+
+        if (i == string::npos)
+        {
+            test2 = "newName";
+        }
+        else
+        {
+            // this uses the std::string::replace
+            test2.replace(i+1, string::npos, "newName");
+        }
+        Info<< "after replace: " << test2 << endl;
+
+        // do another replace
+        // this uses the Foam::string::replace
+        test2.replace("OpenFOAM", "openfoam");
+
+        Info<< "after replace: " << test2 << endl;
+    }
+
     string s;
     Sin.getLine(s);
 
@@ -78,8 +100,7 @@ int main(int argc, char *argv[])
     cout<< "output string with " << s2.length() << " characters\n";
     cout<< "ostream<<  >" << s2 << "<\n";
     Info<< "Ostream<<  >" << s2 << "<\n";
-    Info<< "hash:" << unsigned(string::hash()(s2)) << endl;
-
+    Info<< "hash:" << hex << string::hash()(s2) << endl;
 
     Info << "End\n" << endl;
 
diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
index fff19e006d6f36cc223b84fa36e98ae6493dd2ea..d011fe4a4b0094e6415c4c552bc04b824de33191 100644
--- a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
+++ b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
@@ -312,7 +312,7 @@ int main(int argc, char *argv[])
 
     fileNameList cloudDirs
     (
-        readDir(runTime.timePath()/"lagrangian", fileName::DIRECTORY)
+        readDir(runTime.timePath()/cloud::subInstance, fileName::DIRECTORY)
     );
 
     // Particles
@@ -344,7 +344,7 @@ int main(int argc, char *argv[])
         (
             mesh,
             runTime.timeName(),
-            "lagrangian"/cloudDirs[i]
+            cloud::subInstance/cloudDirs[i]
         );
 
         IOobject* positionsPtr = sprayObjs.lookup("positions");
@@ -418,7 +418,7 @@ int main(int argc, char *argv[])
             (
                 mesh,
                 runTime.timeName(),
-                "lagrangian"/cloudDirs[cloudI]
+                cloud::subInstance/cloudDirs[cloudI]
             );
 
             lagrangianFieldDecomposer::readFields
diff --git a/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposerDecomposeFields.C b/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposerDecomposeFields.C
index 4f11f4d53f54594a799ed0fc398869ba17318fab..0ed0071aaeb6550ae050d5b524567ea403905b58 100644
--- a/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposerDecomposeFields.C
+++ b/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposerDecomposeFields.C
@@ -88,7 +88,7 @@ tmp<IOField<Type> > lagrangianFieldDecomposer::decomposeField
             (
                 field.name(),
                 procMesh_.time().timeName(),
-                "lagrangian"/cloudName,
+                cloud::subInstance/cloudName,
                 procMesh_,
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
diff --git a/applications/utilities/parallelProcessing/reconstructPar/reconstructLagrangian.H b/applications/utilities/parallelProcessing/reconstructPar/reconstructLagrangian.H
index 0cefe9e64153e1ea4c83322f6c037a7d9c2be678..18d282a90921c8acbec203bb61ca9e6fc527dfed 100644
--- a/applications/utilities/parallelProcessing/reconstructPar/reconstructLagrangian.H
+++ b/applications/utilities/parallelProcessing/reconstructPar/reconstructLagrangian.H
@@ -36,6 +36,7 @@ SourceFiles
 #ifndef reconstructLagrangian_H
 #define reconstructLagrangian_H
 
+#include "cloud.H"
 #include "polyMesh.H"
 #include "IOobjectList.H"
 #include "fvMesh.H"
diff --git a/applications/utilities/parallelProcessing/reconstructPar/reconstructLagrangianFields.C b/applications/utilities/parallelProcessing/reconstructPar/reconstructLagrangianFields.C
index 1f357fa64f5345da704f429154db31213bb555a6..705881be10b2d8f509ef302d37c095df4d002834 100644
--- a/applications/utilities/parallelProcessing/reconstructPar/reconstructLagrangianFields.C
+++ b/applications/utilities/parallelProcessing/reconstructPar/reconstructLagrangianFields.C
@@ -47,7 +47,7 @@ Foam::tmp<Foam::IOField<Type> > Foam::reconstructLagrangianField
             (
                 fieldName,
                 mesh.time().timeName(),
-                "lagrangian"/cloudName,
+                cloud::subInstance/cloudName,
                 mesh,
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
@@ -61,10 +61,10 @@ Foam::tmp<Foam::IOField<Type> > Foam::reconstructLagrangianField
     {
         // Check object on local mesh
         IOobject localIOobject
-        ( 
+        (
             fieldName,
             meshes[i].time().timeName(),
-            "lagrangian"/cloudName,
+            cloud::subInstance/cloudName,
             meshes[i],
             IOobject::MUST_READ,
             IOobject::NO_WRITE
diff --git a/applications/utilities/parallelProcessing/reconstructPar/reconstructPar.C b/applications/utilities/parallelProcessing/reconstructPar/reconstructPar.C
index 20def06b9c9cae6f6b0f1b3d9d7b8c33ddf6a5da..fe43c44251ed6ccf9bc9ff9dbc82e69957663076 100644
--- a/applications/utilities/parallelProcessing/reconstructPar/reconstructPar.C
+++ b/applications/utilities/parallelProcessing/reconstructPar/reconstructPar.C
@@ -277,7 +277,7 @@ int main(int argc, char *argv[])
             (
                 readDir
                 (
-                    databases[procI].timePath()/regionPrefix/"lagrangian",
+                    databases[procI].timePath()/regionPrefix/cloud::subInstance,
                     fileName::DIRECTORY
                 )
             );
@@ -295,7 +295,7 @@ int main(int argc, char *argv[])
                     (
                         procMeshes.meshes()[procI],
                         databases[procI].timeName(),
-                        "lagrangian"/cloudDirs[i]
+                        cloud::subInstance/cloudDirs[i]
                     );
 
                     IOobject* positionsPtr = sprayObjs.lookup("positions");
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloudField.H b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloudField.H
index 3e06a1674dbe9b1a286373a21e08fc3ff4379dbe..f6cd858dc69bda78f0f520d6ff96570a479c67f7 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloudField.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloudField.H
@@ -35,6 +35,7 @@ SourceFiles
 #ifndef ensightCloudField_H
 #define ensightCloudField_H
 
+#include "Cloud.H"
 #include "IOobject.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C
index bb7c1880f00cc7a8fd9d5a304c84100ac8924b75..06dd108985734b4303c7ced05f1e81e04bc0711b 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C
@@ -211,7 +211,7 @@ int main(int argc, char *argv[])
 
         fileNameList cloudDirs = readDir
         (
-            runTime.timePath()/regionPrefix/"lagrangian",
+            runTime.timePath()/regionPrefix/cloud::subInstance,
             fileName::DIRECTORY
         );
 
@@ -221,7 +221,7 @@ int main(int argc, char *argv[])
             (
                 mesh,
                 runTime.timeName(),
-                "lagrangian"/cloudDirs[cloudI]
+                cloud::subInstance/cloudDirs[cloudI]
             );
 
             IOobject* positionsPtr = cloudObjs.lookup("positions");
@@ -266,7 +266,7 @@ int main(int argc, char *argv[])
             (
                 mesh,
                 runTime.timeName(),
-                "lagrangian"/cloudIter.key()
+                cloud::subInstance/cloudIter.key()
             );
 
             forAllConstIter(IOobjectList, cloudObjs, fieldIter)
@@ -426,7 +426,7 @@ int main(int argc, char *argv[])
 
             fileNameList currentCloudDirs = readDir
             (
-                runTime.timePath()/regionPrefix/"lagrangian",
+                runTime.timePath()/regionPrefix/cloud::subInstance,
                 fileName::DIRECTORY
             );
 
@@ -449,7 +449,7 @@ int main(int argc, char *argv[])
                 (
                     fieldName,
                     mesh.time().timeName(),
-                    "lagrangian"/cloudName,
+                    cloud::subInstance/cloudName,
                     mesh,
                     IOobject::MUST_READ
                 );
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputCase.H b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputCase.H
index d8f079ea6df347eeec1ae4e9d2795831699527a3..1ef4c550326d5e66f427a1d9835e1aa7968f41d8 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputCase.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputCase.H
@@ -42,7 +42,7 @@ forAllConstIter(HashTable<HashTable<word> >, cloudFields, cloudIter)
 
     caseFile
         << setw(16) << "measured: 2"
-        << fileName(dataMask/"lagrangian"/cloudName/"positions").c_str()
+        << fileName(dataMask/cloud::subInstance/cloudName/"positions").c_str()
             << nl;
 }
 caseFile
@@ -122,7 +122,7 @@ forAllConstIter(HashTable<HashTable<word> >, cloudFields, cloudIter)
                 ensightType,
                 fieldName,
                 dataMask,
-                "lagrangian"/cloudName,
+                cloud::subInstance/cloudName,
                 cloudNo,
                 2
             );
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputFunctions.C b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputFunctions.C
index ca472e073cfec12cbffbb4f884db941c6c9411eb..7e1a992f88add6031abd14049946e10419397501 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputFunctions.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputFunctions.C
@@ -27,7 +27,6 @@ License
 #include "ensightOutputFunctions.H"
 
 #include "passiveParticle.H"
-#include "Cloud.H"
 #include "IOField.H"
 #include "volFields.H"
 #include "surfaceFields.H"
@@ -101,7 +100,7 @@ void ensightParticlePositions
 {
     Cloud<passiveParticle> parcels(mesh, cloudName, false);
 
-    fileName cloudDir = subDir/"lagrangian"/cloudName;
+    fileName cloudDir = subDir/cloud::subInstance/cloudName;
     fileName postFileName = cloudDir/"positions";
 
     // the ITER/lagrangian subdirectory must exist
@@ -165,7 +164,7 @@ void ensightLagrangianField
 {
     Info<< " " << fieldObject.name() << flush;
 
-    fileName cloudDir = subDir/"lagrangian"/cloudName;
+    fileName cloudDir = subDir/cloud::subInstance/cloudName;
     fileName postFileName = cloudDir/fieldObject.name();
 
     string title =
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputFunctions.H b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputFunctions.H
index 7afc250fe31f103b4f19bf62a2fd0ae643a2b63f..75437c2d69fbdbd2e0b989614a85e92e3b983eb6 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputFunctions.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputFunctions.H
@@ -23,9 +23,7 @@ License
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
 Description
-
-    miscellaneous collection of functions and template related
-    to Ensight data
+    Miscellaneous collection of functions and template related to Ensight data
 
 SourceFiles
     ensightOutputFunctions.C
@@ -36,6 +34,7 @@ SourceFiles
 #define ensightOutputFunctions_H
 
 #include "ensightFile.H"
+#include "Cloud.H"
 #include "polyMesh.H"
 #include "IOobject.H"
 
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/findFields.H b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/findFields.H
index cca3fbbcd3fbc4375b5282f66cfd94146e22be6e..7170059b084f01c5736c36486674ba39e2641366 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/findFields.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/findFields.H
@@ -36,7 +36,7 @@ if (timeDirs.size() > 1)
         runTime.path()
       / timeDirs[timeDirs.size() - 1].name()
       / regionPrefix
-      / "lagrangian",
+      / cloud::subInstance,
         fileName::DIRECTORY
     );
 
@@ -55,7 +55,7 @@ if (timeDirs.size() > 1)
         (
             mesh,
             timeDirs[timeDirs.size() - 1].name(),
-            "lagrangian"/cloudName
+            cloud::subInstance/cloudName
         );
 
         bool hasPositions = false;
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/foamToEnsightParts.C b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/foamToEnsightParts.C
index 329dda87f9ebbbb4f3821ee6b93f2125e7c288f4..1665550632b7a05623c803f4812b339bb3cd181d 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/foamToEnsightParts.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/foamToEnsightParts.C
@@ -324,7 +324,14 @@ int main(int argc, char *argv[])
         {
             const word& cloudName = cloudIter.key();
 
-            if (!isDir(runTime.timePath()/regionPrefix/"lagrangian"/cloudName))
+            if
+            (
+                !isDir
+                (
+                    runTime.timePath()/regionPrefix/
+                    cloud::subInstance/cloudName
+                )
+            )
             {
                 continue;
             }
@@ -333,7 +340,7 @@ int main(int argc, char *argv[])
             (
                 mesh,
                 runTime.timeName(),
-                "lagrangian"/cloudName
+                cloud::subInstance/cloudName
             );
 
             // check that the positions field is present for this time
@@ -365,7 +372,8 @@ int main(int argc, char *argv[])
                 if (!fieldObject)
                 {
                     Info<< "missing "
-                        << runTime.timeName()/"lagrangian"/cloudName/fieldName
+                        << runTime.timeName()/cloud::subInstance/cloudName
+                        / fieldName
                         << endl;
                     continue;
                 }
diff --git a/applications/utilities/postProcessing/dataConversion/foamToFieldview9/createSprayFields.H b/applications/utilities/postProcessing/dataConversion/foamToFieldview9/createSprayFields.H
index e28a04b58cf30269fe19be2dbd544d7a72e9cb6e..f6ee45f1bb7268ecaff3c93e0bfc5f706e61a266 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToFieldview9/createSprayFields.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToFieldview9/createSprayFields.H
@@ -21,7 +21,7 @@ List<IOField<vector>* > sprayVectorFieldPtrs
         (
             sprayScalarNames[fieldI],
             runTime.timeName(),
-            "lagrangian",
+            cloud::subInstance,
             mesh,
             IOobject::MUST_READ,
             IOobject::NO_WRITE
@@ -53,7 +53,7 @@ List<IOField<vector>* > sprayVectorFieldPtrs
         (
             sprayVectorNames[fieldI],
             runTime.timeName(),
-            "lagrangian",
+            cloud::subInstance,
             mesh,
             IOobject::MUST_READ,
             IOobject::NO_WRITE
diff --git a/applications/utilities/postProcessing/dataConversion/foamToFieldview9/getFieldNames.H b/applications/utilities/postProcessing/dataConversion/foamToFieldview9/getFieldNames.H
index 9a9789962588a06ff568dafdc9a5ed4f22fda430..4b39cf68bb01edd26a32f8932d8767ae21acf7c6 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToFieldview9/getFieldNames.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToFieldview9/getFieldNames.H
@@ -42,7 +42,7 @@ forAll(Times, timeI)
 
 
     // Same for spray
-    IOobjectList sprayObjects(mesh, runTime.timeName(), "lagrangian");
+    IOobjectList sprayObjects(mesh, runTime.timeName(), cloud::subInstance);
     {
         wordList fieldNames(sprayObjects.names(scalarIOField::typeName));
         forAll(fieldNames, fieldI)
diff --git a/applications/utilities/postProcessing/dataConversion/foamToGMV/foamToGMV.C b/applications/utilities/postProcessing/dataConversion/foamToGMV/foamToGMV.C
index b32952e9bba9b7939a20edee337c84609078a7c3..de0776df6c8a863bed84c089a9c84057370305a1 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToGMV/foamToGMV.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToGMV/foamToGMV.C
@@ -44,21 +44,21 @@ Description
 int main(int argc, char *argv[])
 {
     const label nTypes = 4;
-    const word fieldTypes[] = 
-    { 
-        "volScalarField", 
-        "volVectorField", 
+    const word fieldTypes[] =
+    {
+        "volScalarField",
+        "volVectorField",
         "surfaceScalarField",
-        "lagrangian"
+        cloud::subInstance
     };
 
 #   include "setRootCase.H"
-    
+
 #   include "createTime.H"
 #   include "createMesh.H"
 
 #   include "readConversionProperties.H"
- 
+
     // get the available time-steps
     instantList TimeList = runTime.times();
     Info << TimeList << endl;
@@ -73,7 +73,7 @@ int main(int argc, char *argv[])
             // Set Time
             runTime.setTime(TimeList[n], n);
             word CurTime = runTime.timeName();
-            
+
             IOobjectList objects(mesh, runTime.timeName());
 
 #           include "moveMesh.H"
@@ -81,7 +81,7 @@ int main(int argc, char *argv[])
             // set the filename of the GMV file
             fileName gmvFileName = "plotGMV." + itoa(n);
             OFstream gmvFile(args.rootPath()/args.caseName()/gmvFileName);
-            
+
 #           include "gmvOutputHeader.H"
 #           include "gmvOutput.H"
 #           include "gmvOutputTail.H"
diff --git a/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutput.H b/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutput.H
index 76f834c431c063ee2d2e3908d1e8ae6c000c602d..237c8765b8c974c60e5fdc3f94e98bbd024f9f8a 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutput.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutput.H
@@ -2,13 +2,13 @@ for(label i=0; i < nTypes; i++)
 {
     wordList fieldNames = objects.names(fieldTypes[i]);
 
-    if ( fieldTypes[i] == "volScalarField" ) 
+    if ( fieldTypes[i] == "volScalarField" )
     {
         gmvFile << "variable" << nl;
     }
     for(label j=0; j < fieldNames.size(); j++)
     {
-        
+
         word fieldName = fieldNames[j];
 
         IOobject fieldObject
@@ -19,8 +19,8 @@ for(label i=0; i < nTypes; i++)
             IOobject::MUST_READ,
             IOobject::NO_WRITE
         );
-        
-        if ( fieldTypes[i] == "volScalarField" ) 
+
+        if ( fieldTypes[i] == "volScalarField" )
         {
             volScalarField gmvScalarField(fieldObject, mesh);
             gmvFile << fieldName << " 0" << nl;
@@ -30,8 +30,8 @@ for(label i=0; i < nTypes; i++)
             }
             gmvFile << nl;
         }
-        
-        if ( fieldTypes[i] == "volVectorField" ) 
+
+        if ( fieldTypes[i] == "volVectorField" )
         {
             if (fieldName == vComp)
             {
@@ -52,21 +52,21 @@ for(label i=0; i < nTypes; i++)
                 gmvFile << nl;
             }
         }
-                
-        if ( fieldTypes[i] == "surfaceScalarField" ) 
+
+        if ( fieldTypes[i] == "surfaceScalarField" )
         {
             // ...
         }
-        
+
     }
 
-    if ( fieldTypes[i] == "lagrangian") 
+    if ( fieldTypes[i] == cloud::subInstance )
     {
         IOobject lagrangianHeader
         (
             "positions",
             runTime.timeName(),
-            "lagrangian",
+            cloud::subInstance,
             mesh,
             IOobject::NO_READ
         );
@@ -74,9 +74,9 @@ for(label i=0; i < nTypes; i++)
         if (lagrangianHeader.headerOk())
         {
             Cloud<passiveParticle> particles(mesh);
-            
-            IOobjectList objects(mesh, runTime.timeName(), "lagrangian");
-            
+
+            IOobjectList objects(mesh, runTime.timeName(), cloud::subInstance);
+
             wordList lagrangianScalarNames = objects.names("scalarField");
             wordList lagrangianVectorNames = objects.names("vectorField");
 
@@ -87,7 +87,7 @@ for(label i=0; i < nTypes; i++)
         }
     }
 
-    if ( fieldTypes[i] == "volScalarField" ) 
+    if ( fieldTypes[i] == "volScalarField" )
     {
         gmvFile << "endvars" << nl;
     }
diff --git a/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutputLagrangian.H b/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutputLagrangian.H
index 89c126c1e3ed50d4cbfb786483010bb95a6663f4..28104661de6753acee24da4731cc22dfc74c8f5c 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutputLagrangian.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutputLagrangian.H
@@ -42,7 +42,7 @@ forAll(lagrangianScalarNames, i)
         (
             name,
             runTime.timeName(),
-            "lagrangian",
+            cloud::subInstance,
             mesh,
             IOobject::MUST_READ,
             IOobject::NO_WRITE
@@ -73,7 +73,7 @@ forAll(lagrangianVectorNames, i)
         (
             name,
             runTime.timeName(),
-            "lagrangian",
+            cloud::subInstance,
             mesh,
             IOobject::MUST_READ,
             IOobject::NO_WRITE
diff --git a/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutputSpray.H b/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutputSpray.H
index f5d5b3c8c6da8716330c851c546e3092696128dd..b0beea2274cc8915ea97928e3f3e0dec256ecba0 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutputSpray.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutputSpray.H
@@ -40,7 +40,7 @@ forAll(lagrangianScalarNames, i)
         (
             name,
             runTime.timeName(),
-            "lagrangian",
+            cloud::subInstance,
             mesh,
             IOobject::MUST_READ,
             IOobject::NO_WRITE
diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C
index e03c76c05727a9f2ef596241372bb29c979e5eaa..c98088ff46793f6533b798a91a739d05f312b0ca 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C
@@ -914,7 +914,7 @@ int main(int argc, char *argv[])
         (
             readDir
             (
-                runTime.timePath()/regionPrefix/"lagrangian",
+                runTime.timePath()/regionPrefix/cloud::subInstance,
                 fileName::DIRECTORY
             )
         );
@@ -925,18 +925,18 @@ int main(int argc, char *argv[])
             (
                 mesh,
                 runTime.timeName(),
-                "lagrangian"/cloudDirs[i]
+                cloud::subInstance/cloudDirs[i]
             );
 
             IOobject* positionsPtr = sprayObjs.lookup("positions");
 
             if (positionsPtr)
             {
-                mkDir(fvPath/"lagrangian"/cloudDirs[i]);
+                mkDir(fvPath/cloud::subInstance/cloudDirs[i]);
 
                 fileName lagrFileName
                 (
-                    fvPath/"lagrangian"/cloudDirs[i]/cloudDirs[i]
+                    fvPath/cloud::subInstance/cloudDirs[i]/cloudDirs[i]
                   + "_" + name(timeI) + ".vtk"
                 );
 
diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/lagrangianWriter.H b/applications/utilities/postProcessing/dataConversion/foamToVTK/lagrangianWriter.H
index 8923ba8590d8108880fb2dc37ad98c249417216a..bd13ec2571a7622d70e0c243098c8104348b48bb 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToVTK/lagrangianWriter.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/lagrangianWriter.H
@@ -39,6 +39,7 @@ SourceFiles
 
 #include "globalPointPatch.H"
 #include "OFstream.H"
+#include "Cloud.H"
 #include "volFields.H"
 #include "pointFields.H"
 #include "vtkMesh.H"
diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/lagrangianWriterTemplates.C b/applications/utilities/postProcessing/dataConversion/foamToVTK/lagrangianWriterTemplates.C
index 37c8051383ad6870893b200f8bc7c86d850ba963..e558186e3936a778f3ef3f4ce11de3d329bfafba 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToVTK/lagrangianWriterTemplates.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/lagrangianWriterTemplates.C
@@ -41,7 +41,7 @@ void Foam::lagrangianWriter::writeIOField(const wordList& objects)
         (
             object,
             vMesh_.mesh().time().timeName(),
-            "lagrangian"/cloudName_,
+            cloud::subInstance/cloudName_,
             vMesh_.mesh(),
             IOobject::MUST_READ,
             IOobject::NO_WRITE,
diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H
index 985f6a3d17fad143dfd1af0bbac4b617ac77abb9..9b339f6433552ea039c28e2103ad84f61d52161e 100644
--- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H
+++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H
@@ -58,6 +58,11 @@ SourceFiles
 #ifndef vtkPV3Foam_H
 #define vtkPV3Foam_H
 
+// do not include legacy strstream headers
+#ifndef  VTK_EXCLUDE_STRSTREAM_HEADERS
+# define VTK_EXCLUDE_STRSTREAM_HEADERS
+#endif
+
 #include "className.H"
 #include "fileName.H"
 #include "volPointInterpolation.H"
diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamFields.C b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamFields.C
index 4da5f7de7e4bd35e533faaaafb7fb2e9b30d6363..6efa7e9bf7c79d6632d8c9f7baf6bcd71db54666 100644
--- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamFields.C
+++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamFields.C
@@ -268,7 +268,7 @@ void Foam::vtkPV3Foam::convertLagrangianFields
         (
             mesh,
             dbPtr_().timeName(),
-            "lagrangian"/cloudName
+            cloud::subInstance/cloudName
         );
         pruneObjectList(objects, selectedFields);
 
diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamLagrangianFields.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamLagrangianFields.H
index ade6112e61de1e5fe706ea99553bce50da8aa902..58422d69f49eb4a78b1db291d32df7a7596f6783 100644
--- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamLagrangianFields.H
+++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamLagrangianFields.H
@@ -30,6 +30,8 @@ InClass
 #ifndef vtkPV3FoamLagrangianFields_H
 #define vtkPV3FoamLagrangianFields_H
 
+#include "Cloud.H"
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 template<class Type>
diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshLagrangian.C b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshLagrangian.C
index bfcffeb7876843f36971e0139382b11652452362..b84194cd7b311296f8cae6f6110ad1a3f92fc262 100644
--- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshLagrangian.C
+++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshLagrangian.C
@@ -53,7 +53,7 @@ vtkPolyData* Foam::vtkPV3Foam::lagrangianVTKMesh
     if (debug)
     {
         Info<< "<beg> Foam::vtkPV3Foam::lagrangianVTKMesh - timePath "
-            << mesh.time().timePath()/"lagrangian"/cloudName << endl;
+            << mesh.time().timePath()/cloud::subInstance/cloudName << endl;
         printMemory();
     }
 
@@ -63,7 +63,7 @@ vtkPolyData* Foam::vtkPV3Foam::lagrangianVTKMesh
     (
         mesh,
         mesh.time().timeName(),
-        "lagrangian"/cloudName
+        cloud::subInstance/cloudName
     );
 
     IOobject* positionsPtr = sprayObjs.lookup("positions");
diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInfo.C b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInfo.C
index e587c0cb1f8d56f3be89fa53120a4b8a289c0885..0c8fd5bf2a7d20b7e05388e890e2739272b9f04b 100644
--- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInfo.C
+++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInfo.C
@@ -34,6 +34,7 @@ License
 #include "IOPtrList.H"
 #include "polyBoundaryMeshEntries.H"
 #include "entry.H"
+#include "Cloud.H"
 #include "vtkPV3FoamReader.h"
 
 // local headers
@@ -148,16 +149,16 @@ void Foam::vtkPV3Foam::updateInfoLagrangian()
     if (debug)
     {
         Info<< "<beg> Foam::vtkPV3Foam::updateInfoLagrangian" << nl
-            << "    " << dbPtr_->timePath()/"lagrangian" << endl;
+            << "    " << dbPtr_->timePath()/cloud::subInstance << endl;
     }
 
 
     // use the db directly since this might be called without a mesh,
     // but the region must get added back in
-    fileName lagrangianPrefix("lagrangian");
+    fileName lagrangianPrefix(cloud::subInstance);
     if (meshRegion_ != polyMesh::defaultRegion)
     {
-        lagrangianPrefix = meshRegion_/"lagrangian";
+        lagrangianPrefix = meshRegion_/cloud::subInstance;
     }
 
     // Search for list of lagrangian objects for this time
@@ -463,10 +464,10 @@ void Foam::vtkPV3Foam::updateInfoLagrangianFields()
 
     // use the db directly since this might be called without a mesh,
     // but the region must get added back in
-    fileName lagrangianPrefix("lagrangian");
+    fileName lagrangianPrefix(cloud::subInstance);
     if (meshRegion_ != polyMesh::defaultRegion)
     {
-        lagrangianPrefix = meshRegion_/"lagrangian";
+        lagrangianPrefix = meshRegion_/cloud::subInstance;
     }
 
     IOobjectList objects
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_gold_part_build_info.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_gold_part_build_info.H
index 70d5c9f2a74bc11c1069b9e743e9caf67218a539..6eb8c22a8202fa6f8d26a1534af8c0a94ea501c0 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_gold_part_build_info.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_gold_part_build_info.H
@@ -35,7 +35,7 @@ int USERD_get_gold_part_build_info
     for(label i=0; i<nPatches; i++)
     {
         word patchName(meshPtr->boundary()[i].name());
-        strncpy(part_descriptions[i+1], patchName.c_str(), Z_BUFL);   
+        strncpy(part_descriptions[i+1], patchName.c_str(), Z_BUFL);
     }
 
     label nHex08 = 0;
@@ -101,7 +101,7 @@ int USERD_get_gold_part_build_info
         */
 
     number_of_nodes[0] = meshPtr->nPoints();
-    
+
     const polyBoundaryMesh& bMesh = meshPtr->boundaryMesh();
 
     for(label i=0; i<nPatches; i++)
@@ -137,7 +137,12 @@ int USERD_get_gold_part_build_info
 
     if (Numparts_available > nPatches+1)
     {
-        strncpy(part_descriptions[nPatches+1], sprayName.c_str(), Z_BUFL);
+        strncpy
+        (
+            part_descriptions[nPatches+1],
+            cloud::subInstance.c_str(),
+            Z_BUFL
+        );
         number_of_elements[nPatches+1][Z_POINT] = sprayPtr->size();
         number_of_nodes[nPatches+1] = sprayPtr->size();
     }
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_filenames.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_filenames.H
index 90f2d3f415ab396b48720e58f20c9bb4f9f2b7ac..e1f655cecb7259ec865344ced250b754eab88590 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_filenames.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_filenames.H
@@ -164,7 +164,7 @@ int USERD_set_filenames
     (
         "positions",
         runTime.timeName(),
-        "lagrangian",
+        cloud::subInstance,
         runTime,
         IOobject::NO_READ,
         IOobject::NO_WRITE,
@@ -179,7 +179,7 @@ int USERD_set_filenames
 
         sprayPtr = new Cloud<passiveParticle>(*meshPtr);
 
-        IOobjectList objects(*meshPtr, runTime.timeName(), "lagrangian");
+        IOobjectList objects(*meshPtr, runTime.timeName(), cloud::subInstance);
 
         lagrangianScalarNames =
             (const wordList&)objects.names(sprayScalarFieldName);
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianScalar.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianScalar.H
index e9259e3cc78693babd080d7e841b55ab9867e096..2093fd05af348d581f1097a37d6584e1debc2609 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianScalar.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianScalar.H
@@ -12,7 +12,7 @@ if (nVar >= 0)
         (
             name,
             runTime.timeName(),
-            "lagrangian",
+            cloud::subInstance,
             mesh,
             IOobject::MUST_READ,
             IOobject::NO_WRITE
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianVector.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianVector.H
index 42fcc8560fd7067df52e8ee65832a8069028b7e3..9e41fe02c06c4ba60cf6bfdfb9cad35ce26c35c7 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianVector.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianVector.H
@@ -14,7 +14,7 @@ if (nVar >= 0)
         (
             name,
             runTime.timeName(),
-            "lagrangian",
+            cloud::subInstance,
             mesh,
             IOobject::MUST_READ,
             IOobject::NO_WRITE
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/globalFoam.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/globalFoam.H
index 4606671860b8907e539a424f889b7b60e47f3293..d68861b138e6cb79159d94767c0206769c2baa5c 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/globalFoam.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/globalFoam.H
@@ -32,7 +32,6 @@ static bool isSpray[maxNames];
 static word scalarName             = "volScalarField";
 static word vectorName             = "volVectorField";
 static word tensorName             = "volTensorField";
-static word sprayName              = "lagrangian";
 static word sprayScalarFieldName   = "scalarField";
 static word sprayVectorFieldName   = "vectorField";
 static word sprayTensorFieldName   = "tensorField";
diff --git a/applications/utilities/preProcessing/mapFields/MapLagrangianFields.H b/applications/utilities/preProcessing/mapFields/MapLagrangianFields.H
index 830d6d825defb5854368ea2328791a17450438dd..373b393eacdbe11332191646bf0e26627eed5522 100644
--- a/applications/utilities/preProcessing/mapFields/MapLagrangianFields.H
+++ b/applications/utilities/preProcessing/mapFields/MapLagrangianFields.H
@@ -34,6 +34,7 @@ Description
 #ifndef MapLagrangianFields_H
 #define MapLagrangianFields_H
 
+#include "cloud.H"
 #include "GeometricField.H"
 #include "meshToMesh.H"
 #include "IOobjectList.H"
@@ -60,8 +61,7 @@ void MapLagrangianFields
 
     forAllIter(IOobjectList, fields, fieldIter)
     {
-        Info<< "    mapping lagrangian field "
-            << fieldIter()->name() << endl;
+        Info<< "    mapping lagrangian field " << fieldIter()->name() << endl;
 
         // Read field (does not need mesh)
         IOField<Type> fieldSource(*fieldIter());
@@ -73,7 +73,7 @@ void MapLagrangianFields
             (
                 fieldIter()->name(),
                 meshTarget.time().timeName(),
-                "lagrangian"/cloudName,
+                cloud::subInstance/cloudName,
                 meshTarget,
                 IOobject::NO_READ,
                 IOobject::NO_WRITE,
diff --git a/applications/utilities/preProcessing/mapFields/mapLagrangian.C b/applications/utilities/preProcessing/mapFields/mapLagrangian.C
index e57aa9761c81370d6d20ab1dd8af1c00a53cb8c8..fe5e1c70ddbe53db73ae33ac8f04c78c72b5bf78 100644
--- a/applications/utilities/preProcessing/mapFields/mapLagrangian.C
+++ b/applications/utilities/preProcessing/mapFields/mapLagrangian.C
@@ -94,7 +94,7 @@ void mapLagrangian(const meshToMesh& meshToMeshInterp)
     (
         readDir
         (
-            meshSource.time().timePath()/"lagrangian",
+            meshSource.time().timePath()/cloud::subInstance,
             fileName::DIRECTORY
         )
     );
@@ -106,7 +106,7 @@ void mapLagrangian(const meshToMesh& meshToMeshInterp)
         (
             meshSource,
             meshSource.time().timeName(),
-            "lagrangian"/cloudDirs[cloudI]
+            cloud::subInstance/cloudDirs[cloudI]
         );
 
         IOobject* positionsPtr = objects.lookup("positions");
diff --git a/src/OpenFOAM/db/IOstreams/Sstreams/readHexLabel.H b/src/OpenFOAM/db/IOstreams/Sstreams/readHexLabel.H
index fffccc452590b74f942929e5ebb6ea33d0810da5..37811c0d6739039dc073d80c71cfe8a901eaa453 100644
--- a/src/OpenFOAM/db/IOstreams/Sstreams/readHexLabel.H
+++ b/src/OpenFOAM/db/IOstreams/Sstreams/readHexLabel.H
@@ -45,7 +45,7 @@ namespace Foam
 {
 
 //- Read a hex label from an input stream
-label readHexLabel(ISstream& is);
+label readHexLabel(ISstream&);
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/src/OpenFOAM/db/objectRegistry/objectRegistry.C b/src/OpenFOAM/db/objectRegistry/objectRegistry.C
index 1038ecffa10de97c47b2eb8c9b2a3ca273061113..b8324dd8a8f670bf674105a989da214d2eafa8e0 100644
--- a/src/OpenFOAM/db/objectRegistry/objectRegistry.C
+++ b/src/OpenFOAM/db/objectRegistry/objectRegistry.C
@@ -98,7 +98,7 @@ Foam::wordList Foam::objectRegistry::names() const
     wordList objectNames(size());
 
     label count=0;
-    for (const_iterator iter = begin(); iter != end(); ++iter)
+    for (const_iterator iter = cbegin(); iter != cend(); ++iter)
     {
         objectNames[count++] = iter()->name();
     }
@@ -112,7 +112,7 @@ Foam::wordList Foam::objectRegistry::names(const word& ClassName) const
     wordList objectNames(size());
 
     label count=0;
-    for (const_iterator iter = begin(); iter != end(); ++iter)
+    for (const_iterator iter = cbegin(); iter != cend(); ++iter)
     {
         if (iter()->type() == ClassName)
         {
@@ -195,15 +195,33 @@ bool Foam::objectRegistry::checkOut(regIOobject& io) const
                 << " in registry " << name()
                 << endl;
         }
+    }
+    
+    return false;
+}
+
+
+void Foam::objectRegistry::rename(const word& newName)
+{
+    regIOobject::rename(newName);
 
-        return false;
+    // adjust dbDir_ as well
+    string::size_type i = dbDir_.rfind('/');
+
+    if (i == string::npos)
+    {
+        dbDir_ = newName;
+    }
+    else
+    {
+        dbDir_.replace(i+1, string::npos, newName);
     }
 }
 
 
 bool Foam::objectRegistry::modified() const
 {
-    for (const_iterator iter = begin(); iter != end(); ++iter)
+    for (const_iterator iter = cbegin(); iter != cend(); ++iter)
     {
         if (iter()->modified())
         {
@@ -248,7 +266,7 @@ bool Foam::objectRegistry::writeObject
 {
     bool ok = true;
 
-    for (const_iterator iter = begin(); iter != end(); ++iter)
+    for (const_iterator iter = cbegin(); iter != cend(); ++iter)
     {
         if (objectRegistry::debug)
         {
diff --git a/src/OpenFOAM/db/objectRegistry/objectRegistry.H b/src/OpenFOAM/db/objectRegistry/objectRegistry.H
index 6c701e1d855b1a2652ad2f813b1b59ba6281eeb1..98f3b4b1f5544130990baacc79d3fb76c5d331df 100644
--- a/src/OpenFOAM/db/objectRegistry/objectRegistry.H
+++ b/src/OpenFOAM/db/objectRegistry/objectRegistry.H
@@ -154,6 +154,9 @@ public:
 
         // Edit
 
+            //- Rename
+            virtual void rename(const word& newName);
+
             //- Add an regIOobject to registry
             bool checkIn(regIOobject&) const;
 
diff --git a/src/OpenFOAM/fields/cloud/cloud.C b/src/OpenFOAM/fields/cloud/cloud.C
index 2dd30b5f3c22355b22672fe07510634fc8cb43d3..5dcb6f832834f4ff12006b3b66e0f1d1c6e4c4d0 100644
--- a/src/OpenFOAM/fields/cloud/cloud.C
+++ b/src/OpenFOAM/fields/cloud/cloud.C
@@ -29,10 +29,10 @@ License
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
-namespace Foam
-{
-    defineTypeNameAndDebug(cloud, 0);
-}
+defineTypeNameAndDebug(Foam::cloud, 0);
+
+const Foam::word Foam::cloud::subInstance("lagrangian");
+Foam::word Foam::cloud::defaultName("defaultCloud");
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
@@ -42,9 +42,9 @@ Foam::cloud::cloud(const objectRegistry& obr, const word& cloudName)
     (
         IOobject
         (
-            cloudName,
+            ( cloudName.size() ? cloudName : defaultName ),
             obr.time().timeName(),
-            "lagrangian",
+            subInstance,
             obr,
             IOobject::NO_READ,
             IOobject::AUTO_WRITE
diff --git a/src/OpenFOAM/fields/cloud/cloud.H b/src/OpenFOAM/fields/cloud/cloud.H
index 68743e6e96ddfe6680cd84bc325223841112de27..0891255d14a6f901daf79c68a2e80d3b5c6128bc 100644
--- a/src/OpenFOAM/fields/cloud/cloud.H
+++ b/src/OpenFOAM/fields/cloud/cloud.H
@@ -47,7 +47,7 @@ namespace Foam
 class mapPolyMesh;
 
 /*---------------------------------------------------------------------------*\
-                           Class cloud Declaration
+                            Class cloud Declaration
 \*---------------------------------------------------------------------------*/
 
 class cloud
@@ -69,15 +69,16 @@ public:
     //- Runtime type information
     TypeName("cloud");
 
+        //- The subInstance (local) to prefix: %lagrangian
+        static const word subInstance;
+
+        //- The default cloud name: %defaultCloud
+        static word defaultName;
 
     // Constructors
 
         //- Construct for the given objectRegistry and named cloud instance
-        cloud
-        (
-            const objectRegistry& obr,
-            const word& cloudName = "defaultCloud"
-        );
+        cloud(const objectRegistry&, const word& cloudName = "");
 
 
     // Destructor
diff --git a/src/OpenFOAM/primitives/strings/string/string.H b/src/OpenFOAM/primitives/strings/string/string.H
index 247b031d6c65cc3ac998688653f0990f28bbb282..97c6dd4d4dd7e50a6670b27704e8a9b24b57e1fb 100644
--- a/src/OpenFOAM/primitives/strings/string/string.H
+++ b/src/OpenFOAM/primitives/strings/string/string.H
@@ -144,6 +144,9 @@ public:
         template<class String>
         static inline string quotemeta(const string&, const char quote='\\');
 
+        //- Avoid masking the normal std::string replace
+        using std::string::replace;
+
         //- Replace first occurence of sub-string oldStr with newStr
         //  starting at start
         string& replace
diff --git a/src/OpenFOAM/primitives/strings/wordRe/wordRe.H b/src/OpenFOAM/primitives/strings/wordRe/wordRe.H
index aee6c3a883f60f390d8f8696c6522e2c6b65ebde..5ab07b0e668b039e0fe45550a5ea0c7a555ca27e 100644
--- a/src/OpenFOAM/primitives/strings/wordRe/wordRe.H
+++ b/src/OpenFOAM/primitives/strings/wordRe/wordRe.H
@@ -41,7 +41,7 @@ Description
 Note
     If the string contents are changed - eg, by the operator+=() or by
     string::replace(), etc - it will be necessary to use compile() or
-    recompile() to sychronize the regular expression.
+    recompile() to synchronize the regular expression.
 
 SourceFiles
     wordRe.C