diff --git a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict
index 92c92d72e5ae9bacad9c7944aa6d79ff119b5dfa..ab8adca478e8fc7235c1949081d1d213f150f569 100644
--- a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict
+++ b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict
@@ -274,7 +274,7 @@ addLayersControls
     maxThicknessToMedialRatio 0.3;
 
     // Angle used to pick up medial axis points
-    minMedianAxisAngle 130;
+    minMedianAxisAngle 90;
 
     // Create buffer region for new layer terminations
     nBufferCellsNoExtrude 0;
diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Allwmake b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Allwmake
deleted file mode 100755
index bbb2c4343653286e5f8d3b5bbd87a37b6454999d..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Allwmake
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-cd ${0%/*} || exit 1    # run from this directory
-
-if [ "$TEC_360_2009" ]
-then
-    wmake
-fi
-
-# ----------------------------------------------------------------- end-of-file
diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Make/options b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Make/options
index d03f44ae8cd509c3bcec9b62b2c7fc1ec3c31185..0c2c8b721607451a821a332a47319da09606246a 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Make/options
+++ b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Make/options
@@ -1,14 +1,12 @@
 EXE_INC = \
-    -I$(TEC_360_2009)/include \
-    /* -I../tecio/tecsrc/lnInclude/ */ \
+    -I$(WM_THIRD_PARTY_DIR)/tecio/tecsrc/lnInclude \
     -I$(LIB_SRC)/lagrangian/basic/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude
 
 
 EXE_LIBS = \
-    $(TEC_360_2009)/lib/tecio64.a \
-    /* -L$(FOAM_USER_LIBBIN) -ltecio */ \
+    -ltecio \
     -llagrangian \
     -lfiniteVolume \
     -lmeshTools
diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/foamToTecplot360.C b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/foamToTecplot360.C
index d514609ff2ac93904ef354e35880f8d21b458831..8ed17ebffb190f42d4589bf1ecd0eac777d788d3 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/foamToTecplot360.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/foamToTecplot360.C
@@ -65,6 +65,9 @@ Usage
     information as a single argument. The double quotes denote a regular
     expression.
 
+    @param -useTimeName \n
+    use the time index in the VTK file name instead of the time index
+
 \*---------------------------------------------------------------------------*/
 
 #include "pointMesh.H"
@@ -240,7 +243,7 @@ int main(int argc, char *argv[])
 #   include "createNamedMesh.H"
 
     // TecplotData/ directory in the case
-    fileName fvPath(runTime.path()/"TecplotData-bin");
+    fileName fvPath(runTime.path()/"Tecplot360");
     // Directory of mesh (region0 gets filtered out)
     fileName regionPrefix = "";
 
@@ -536,7 +539,8 @@ int main(int argc, char *argv[])
             varLocation
         );
 
-        // strandID (= some zone id)
+        // strandID (= piece id. Gets incremented for every piece of geometry
+        // that is output)
         INTEGER4 strandID = 1;
 
 
@@ -647,7 +651,7 @@ int main(int argc, char *argv[])
                     writer.writePolyhedralZone
                     (
                         mesh.name(),        // regionName
-                        1,  //strandID,           // strandID
+                        strandID,           // strandID
                         mesh,
                         List<INTEGER4>(3, ValueLocation_Nodal),
                         nFaceNodes
@@ -684,7 +688,7 @@ int main(int argc, char *argv[])
                 writer.writePolyhedralZone
                 (
                     mesh.name(),        // regionName
-                    1,  //strandID,           // strandID
+                    strandID++,         // strandID
                     mesh,
                     varLocation,
                     0
@@ -776,7 +780,7 @@ int main(int argc, char *argv[])
             writer.writePolygonalZone
             (
                 setName,
-                1,  //strandID,
+                strandID++,
                 ipp,
                 allVarLocation
             );
@@ -903,7 +907,7 @@ int main(int argc, char *argv[])
         {
             label patchID = patchIDs[i];
             const polyPatch& pp = patches[patchID];
-            INTEGER4 strandID = 1 + i;
+            //INTEGER4 strandID = 1 + i;
 
             Info<< "    Writing patch " << patchID << "\t" << pp.name()
                 << "\tstrand:" << strandID << nl << endl;
@@ -917,7 +921,7 @@ int main(int argc, char *argv[])
             writer.writePolygonalZone
             (
                 pp.name(),
-                strandID,
+                strandID++,     //strandID,
                 ipp,
                 allVarLocation
             );
@@ -1073,7 +1077,7 @@ int main(int argc, char *argv[])
                 writer.writePolygonalZone
                 (
                     pp.name(),
-                    1+patchIDs.size()+zoneI,    //strandID,
+                    strandID++, //1+patchIDs.size()+zoneI,    //strandID,
                     ipp,
                     allVarLocation
                 );
@@ -1196,29 +1200,29 @@ int main(int argc, char *argv[])
                 Info<< "        vectors           :";
                 print(Info, vectorNames);
 
-                wordList sphereNames
-                (
-                    sprayObjs.names
-                    (
-                        sphericalTensorIOField::typeName
-                    )
-                );
-                Info<< "        spherical tensors :";
-                print(Info, sphereNames);
-
-                wordList symmNames
-                (
-                    sprayObjs.names
-                    (
-                        symmTensorIOField::typeName
-                    )
-                );
-                Info<< "        symm tensors      :";
-                print(Info, symmNames);
-
-                wordList tensorNames(sprayObjs.names(tensorIOField::typeName));
-                Info<< "        tensors           :";
-                print(Info, tensorNames);
+                //wordList sphereNames
+                //(
+                //    sprayObjs.names
+                //    (
+                //        sphericalTensorIOField::typeName
+                //    )
+                //);
+                //Info<< "        spherical tensors :";
+                //print(Info, sphereNames);
+                //
+                //wordList symmNames
+                //(
+                //    sprayObjs.names
+                //    (
+                //        symmTensorIOField::typeName
+                //    )
+                //);
+                //Info<< "        symm tensors      :";
+                //print(Info, symmNames);
+                //
+                //wordList tensorNames(sprayObjs.names(tensorIOField::typeName));
+                //Info<< "        tensors           :";
+                //print(Info, tensorNames);
 
 
                 // Load cloud positions
@@ -1277,7 +1281,7 @@ int main(int argc, char *argv[])
                 writer.writeOrderedZone
                 (
                     cloudDirs[cloudI],
-                    strandID,
+                    strandID++,     //strandID,
                     parcels.size(),
                     allVarLocation
                 );
diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecplotWriter.C b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecplotWriter.C
index 47165d80a448adbec08991a0e7de239e1314a8cf..97e94d49824adfa674665e7e90aa498d2493b0b7 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecplotWriter.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecplotWriter.C
@@ -79,7 +79,7 @@ Pout<< endl
 void Foam::tecplotWriter::writePolyhedralZone
 (
     const word& zoneName,
-    const INTEGER4 strandID,
+    INTEGER4 strandID,
     const fvMesh& mesh,
     const List<INTEGER4>& varLocArray,
     INTEGER4 nFaceNodes
@@ -95,7 +95,6 @@ void Foam::tecplotWriter::writePolyhedralZone
     INTEGER4  KCellMax   = 0;         /* Not Used, set to zero */
 
     double    SolTime    = runTime_.value();     /* solution time   */
-    INTEGER4  StrandID   = 1;         /* static zone     */
     INTEGER4  ParentZone = 0;         /* no parent zone  */
 
     INTEGER4  IsBlock    = 1;         /* block format  */
@@ -135,7 +134,7 @@ Pout<< "zoneName:" << zoneName
             &JCellMax,                    
             &KCellMax,                    
             &SolTime,                
-            &StrandID,                    
+            &strandID,                    
             &ParentZone,                 
             &IsBlock,
             &NFConns,
diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecplotWriterTemplates.C b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecplotWriterTemplates.C
index f337b20d380836f9f06d2634f19470c0c108a407..f9a01d57a4ba31bd3aef10148a75ac0efb8554f9 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecplotWriterTemplates.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecplotWriterTemplates.C
@@ -26,11 +26,11 @@ License
 
 #include "tecplotWriter.H"
 
-extern "C"
-{
+//extern "C"
+//{
     #include "MASTER.h"
     #include "GLOBAL.h"
-}
+//}
 
 #include "fvc.H"
 
diff --git a/src/OpenFOAM/db/Time/Time.C b/src/OpenFOAM/db/Time/Time.C
index 2580a6592c033041928a5ea04f100664f7caecc1..bda1666bec2995454974785a912fb3b7f63fbc7b 100644
--- a/src/OpenFOAM/db/Time/Time.C
+++ b/src/OpenFOAM/db/Time/Time.C
@@ -678,83 +678,89 @@ Foam::Time& Foam::Time::operator++()
     deltaTSave_ = deltaT_;
     setTime(value() + deltaT_, timeIndex_ + 1);
 
-    // If the time is very close to zero reset to zero
-    if (mag(value()) < 10*SMALL*deltaT_)
-    {
-        setTime(0.0, timeIndex_);
-    }
-
-    switch (writeControl_)
+    if (!subCycling_)
     {
-        case wcTimeStep:
-            outputTime_ = !(timeIndex_ % label(writeInterval_));
-        break;
+        // If the time is very close to zero reset to zero
+        if (mag(value()) < 10*SMALL*deltaT_)
+        {
+            setTime(0.0, timeIndex_);
+        }
 
-        case wcRunTime:
-        case wcAdjustableRunTime:
+        switch (writeControl_)
         {
-            label outputIndex =
-                label(((value() - startTime_) + 0.5*deltaT_)/writeInterval_);
+            case wcTimeStep:
+                outputTime_ = !(timeIndex_ % label(writeInterval_));
+            break;
 
-            if (outputIndex > outputTimeIndex_)
+            case wcRunTime:
+            case wcAdjustableRunTime:
             {
-                outputTime_ = true;
-                outputTimeIndex_ = outputIndex;
-            }
-            else
-            {
-                outputTime_ = false;
+                label outputIndex = label
+                (
+                    ((value() - startTime_) + 0.5*deltaT_)
+                  / writeInterval_
+                );
+
+                if (outputIndex > outputTimeIndex_)
+                {
+                    outputTime_ = true;
+                    outputTimeIndex_ = outputIndex;
+                }
+                else
+                {
+                    outputTime_ = false;
+                }
             }
-        }
-        break;
+            break;
 
-        case wcCpuTime:
-        {
-            label outputIndex = label(elapsedCpuTime()/writeInterval_);
-            if (outputIndex > outputTimeIndex_)
+            case wcCpuTime:
             {
-                outputTime_ = true;
-                outputTimeIndex_ = outputIndex;
+                label outputIndex = label(elapsedCpuTime()/writeInterval_);
+                if (outputIndex > outputTimeIndex_)
+                {
+                    outputTime_ = true;
+                    outputTimeIndex_ = outputIndex;
+                }
+                else
+                {
+                    outputTime_ = false;
+                }
             }
-            else
+            break;
+
+            case wcClockTime:
             {
-                outputTime_ = false;
+                label outputIndex = label(elapsedClockTime()/writeInterval_);
+                if (outputIndex > outputTimeIndex_)
+                {
+                    outputTime_ = true;
+                    outputTimeIndex_ = outputIndex;
+                }
+                else
+                {
+                    outputTime_ = false;
+                }
             }
+            break;
         }
-        break;
 
-        case wcClockTime:
+        // see if endTime needs adjustment to stop at the next run()/end() check
+        if (!end())
         {
-            label outputIndex = label(elapsedClockTime()/writeInterval_);
-            if (outputIndex > outputTimeIndex_)
+            if (stopAt_ == saNoWriteNow)
+            {
+                endTime_ = value();
+            }
+            else if (stopAt_ == saWriteNow)
             {
+                endTime_ = value();
                 outputTime_ = true;
-                outputTimeIndex_ = outputIndex;
             }
-            else
+            else if (stopAt_ == saNextWrite && outputTime_ == true)
             {
-                outputTime_ = false;
+                endTime_ = value();
             }
         }
-        break;
-    }
-
-    // see if endTime needs adjustment to stop at the next run()/end() check
-    if (!end())
-    {
-        if (stopAt_ == saNoWriteNow)
-        {
-            endTime_ = value();
-        }
-        else if (stopAt_ == saWriteNow)
-        {
-            endTime_ = value();
-            outputTime_ = true;
-        }
-        else if (stopAt_ == saNextWrite && outputTime_ == true)
-        {
-            endTime_ = value();
-        }
     }
 
     return *this;
diff --git a/src/OpenFOAM/db/dictionary/dictionary.C b/src/OpenFOAM/db/dictionary/dictionary.C
index fb6f28af5b89516118eaf0597e46b176122ef1b2..9d022d5111e86400df9d64fa2ef371d0824c87fe 100644
--- a/src/OpenFOAM/db/dictionary/dictionary.C
+++ b/src/OpenFOAM/db/dictionary/dictionary.C
@@ -109,14 +109,21 @@ Foam::dictionary::dictionary()
 {}
 
 
+Foam::dictionary::dictionary(const fileName& name)
+:
+    dictionaryName(name),
+    parent_(dictionary::null)
+{}
+
+
 Foam::dictionary::dictionary
 (
     const dictionary& parentDict,
     const dictionary& dict
 )
 :
+    dictionaryName(parentDict.name() + "::" + dict.name()),
     IDLList<entry>(dict, *this),
-    name_(dict.name()),
     parent_(parentDict)
 {
     forAllIter(IDLList<entry>, *this, iter)
@@ -140,8 +147,8 @@ Foam::dictionary::dictionary
     const dictionary& dict
 )
 :
+    dictionaryName(dict.name()),
     IDLList<entry>(dict, *this),
-    name_(dict.name()),
     parent_(dictionary::null)
 {
     forAllIter(IDLList<entry>, *this, iter)
@@ -183,6 +190,7 @@ Foam::dictionary::dictionary
     parent_(parentDict)
 {
     transfer(dict());
+    name() = parentDict.name() + "::" + name();
 }
 
 
@@ -472,6 +480,24 @@ Foam::dictionary& Foam::dictionary::subDict(const word& keyword)
 }
 
 
+Foam::dictionary Foam::dictionary::subOrEmptyDict
+(
+    const word& keyword
+) const
+{
+    const entry* entryPtr = lookupEntryPtr(keyword, false, true);
+
+    if (entryPtr == NULL)
+    {
+        return dictionary(*this, dictionary(keyword));
+    }
+    else
+    {
+        return entryPtr->dict();
+    }
+}
+
+
 Foam::wordList Foam::dictionary::toc() const
 {
     wordList keys(size());
@@ -530,7 +556,7 @@ bool Foam::dictionary::add(entry* entryPtr, bool mergeEntry)
 
             if (hashedEntries_.insert(entryPtr->keyword(), entryPtr))
             {
-                entryPtr->name() = name_ + "::" + entryPtr->keyword();
+                entryPtr->name() = name() + "::" + entryPtr->keyword();
 
                 if (entryPtr->keyword().isPattern())
                 {
@@ -558,7 +584,7 @@ bool Foam::dictionary::add(entry* entryPtr, bool mergeEntry)
 
     if (hashedEntries_.insert(entryPtr->keyword(), entryPtr))
     {
-        entryPtr->name() = name_ + "::" + entryPtr->keyword();
+        entryPtr->name() = name() + "::" + entryPtr->keyword();
         IDLList<entry>::append(entryPtr);
 
         if (entryPtr->keyword().isPattern())
@@ -763,7 +789,7 @@ bool Foam::dictionary::changeKeyword
 
     // change name and HashTable, but leave DL-List untouched
     iter()->keyword() = newKeyword;
-    iter()->name() = name_ + "::" + newKeyword;
+    iter()->name() = name() + "::" + newKeyword;
     hashedEntries_.erase(oldKeyword);
     hashedEntries_.insert(newKeyword, iter());
 
@@ -838,7 +864,7 @@ void Foam::dictionary::transfer(dictionary& dict)
 {
     // changing parents probably doesn't make much sense,
     // but what about the names?
-    name_ = dict.name_;
+    name() = dict.name();
 
     IDLList<entry>::transfer(dict);
     hashedEntries_.transfer(dict.hashedEntries_);
@@ -871,7 +897,7 @@ void Foam::dictionary::operator=(const dictionary& rhs)
             << abort(FatalError);
     }
 
-    name_ = rhs.name();
+    name() = rhs.name();
     clear();
 
     // Create clones of the entries in the given dictionary
diff --git a/src/OpenFOAM/db/dictionary/dictionary.H b/src/OpenFOAM/db/dictionary/dictionary.H
index a49c97bec49a43ddcdd1a05b7e9abacecf1ba084..8645dfadc0a8fb8b653178812741fb162b3a0f66 100644
--- a/src/OpenFOAM/db/dictionary/dictionary.H
+++ b/src/OpenFOAM/db/dictionary/dictionary.H
@@ -41,7 +41,7 @@ Description
 
 ToDo
     A merge() member function with a non-const dictionary parameter.
-    This would avoid unnecessary cloning in the add(entry*,bool) method
+    This would avoid unnecessary cloning in the add(entry*, bool) method.
 
 SourceFiles
     dictionary.C
@@ -74,6 +74,47 @@ class SHA1Digest;
 Istream& operator>>(Istream&, dictionary&);
 Ostream& operator<<(Ostream&, const dictionary&);
 
+/*---------------------------------------------------------------------------*\
+                        Class dictionaryName Declaration
+\*---------------------------------------------------------------------------*/
+
+class dictionaryName
+{
+    // Private data
+
+        fileName name_;
+
+
+public:
+
+    // Constructors
+
+        //- Construct dictionaryName null
+        dictionaryName()
+        {}
+
+        //- Construct dictionaryName as copy of the given fileName
+        dictionaryName(const fileName& name)
+        :
+            name_(name)
+        {}
+
+
+    // Member functions
+
+        //- Return the dictionary name
+        const fileName& name() const
+        {
+            return name_;
+        }
+
+        //- Return the dictionary name
+        fileName& name()
+        {
+            return name_;
+        }
+};
+
 
 /*---------------------------------------------------------------------------*\
                            Class dictionary Declaration
@@ -81,13 +122,11 @@ Ostream& operator<<(Ostream&, const dictionary&);
 
 class dictionary
 :
+    public dictionaryName,
     public IDLList<entry>
 {
     // Private data
 
-        //- Dictionary name
-        fileName name_;
-
         //- HashTable of the entries held on the DL-list for quick lookup
         HashTable<entry*> hashedEntries_;
 
@@ -100,6 +139,7 @@ class dictionary
         //- Patterns as precompiled regular expressions
         DLList<autoPtr<regExp> > patternRegexps_;
 
+
    // Private Member Functions
 
         //- Search patterns table for exact match or regular expression match
@@ -121,16 +161,6 @@ class dictionary
         );
 
 
-public:
-
-        //- Read dictionary from Istream
-        bool read(Istream&);
-
-        //- Substitute the given keyword prepended by '$' with the
-        //  corresponding sub-dictionary entries
-        bool substituteKeyword(const word& keyword);
-
-
 public:
 
     //- Declare friendship with the entry class for IO
@@ -150,10 +180,14 @@ public:
         //- Construct top-level dictionary null
         dictionary();
 
-        //- Construct from the parent dictionary and Istream, reading entries
-        //  until lastEntry or EOF
+        //- Construct top-level empty dictionary with given name
+        dictionary(const fileName& name);
+
+        //- Construct given the entry name, parent dictionary and Istream,
+        //  reading entries until lastEntry or EOF
         dictionary
         (
+            const fileName& name,
             const dictionary& parentDict,
             Istream&
         );
@@ -192,18 +226,6 @@ public:
 
     // Member functions
 
-        //- Return the dictionary name
-        const fileName& name() const
-        {
-            return name_;
-        }
-
-        //- Return the dictionary name
-        fileName& name()
-        {
-            return name_;
-        }
-
         //- Return the parent dictionary
         const dictionary& parent() const
         {
@@ -320,14 +342,23 @@ public:
             //- Find and return a sub-dictionary for manipulation
             dictionary& subDict(const word&);
 
+            //- Find and return a sub-dictionary as a copy, or
+            //  return an empty dictionary if the sub-dictionary does not exist
+            dictionary subOrEmptyDict(const word&) const;
+
             //- Return the table of contents
             wordList toc() const;
 
             //- Return the list of available keys or patterns
             List<keyType> keys(bool patterns=false) const;
 
+
         // Editing
 
+            //- Substitute the given keyword prepended by '$' with the
+            //  corresponding sub-dictionary entries
+            bool substituteKeyword(const word& keyword);
+
             //- Add a new entry
             //  With the merge option, dictionaries are interwoven and
             //  primitive entries are overwritten
@@ -407,6 +438,12 @@ public:
             Xfer<dictionary> xfer();
 
 
+        // Read
+
+            //- Read dictionary from Istream
+            bool read(Istream&);
+
+
         // Write
 
             void write(Ostream&, bool subDict=true) const;
diff --git a/src/OpenFOAM/db/dictionary/dictionaryEntry/dictionaryEntryIO.C b/src/OpenFOAM/db/dictionary/dictionaryEntry/dictionaryEntryIO.C
index c06f7c8cef2aa4f267944fe854d0eb5cb7f17d2f..489395e43a72dea2f3270e9475169853b8876aea 100644
--- a/src/OpenFOAM/db/dictionary/dictionaryEntry/dictionaryEntryIO.C
+++ b/src/OpenFOAM/db/dictionary/dictionaryEntry/dictionaryEntryIO.C
@@ -58,10 +58,8 @@ Foam::dictionaryEntry::dictionaryEntry
 )
 :
     entry(key),
-    dictionary(parentDict, is)
+    dictionary(key, parentDict, is)
 {
-    name() += "::" + key;
-
     is.fatalCheck
     (
         "dictionaryEntry::dictionaryEntry"
diff --git a/src/OpenFOAM/db/dictionary/dictionaryIO.C b/src/OpenFOAM/db/dictionary/dictionaryIO.C
index 96196e3a11ab9a9b8e2913405f54f85f28262302..446aba828db4d353e2606a6eca374834f16abb62 100644
--- a/src/OpenFOAM/db/dictionary/dictionaryIO.C
+++ b/src/OpenFOAM/db/dictionary/dictionaryIO.C
@@ -95,11 +95,12 @@ bool Foam::dictionary::substituteKeyword(const word& keyword)
 
 Foam::dictionary::dictionary
 (
+    const fileName& name,
     const dictionary& parentDict,
     Istream& is
 )
 :
-    name_(is.name()),
+    dictionaryName(parentDict.name() + "::" + name),
     parent_(parentDict)
 {
     read(is);
@@ -108,7 +109,7 @@ Foam::dictionary::dictionary
 
 Foam::dictionary::dictionary(Istream& is)
 :
-    name_(is.name()),
+    dictionaryName(is.name()),
     parent_(dictionary::null)
 {
     // Reset input mode as this is a "top-level" dictionary
@@ -132,6 +133,7 @@ Foam::Istream& Foam::operator>>(Istream& is, dictionary& dict)
     functionEntries::inputModeEntry::clear();
 
     dict.clear();
+    dict.name() = is.name();
     dict.read(is);
 
     return is;
diff --git a/src/OpenFOAM/db/dictionary/entry/entry.H b/src/OpenFOAM/db/dictionary/entry/entry.H
index 8b2ffccf2a664ffddf20d3f0f68b883aca0e399b..972576e51cc5c00743cb7062923012c69ddcff5b 100644
--- a/src/OpenFOAM/db/dictionary/entry/entry.H
+++ b/src/OpenFOAM/db/dictionary/entry/entry.H
@@ -108,10 +108,9 @@ public:
         static autoPtr<entry> New(Istream& is);
 
 
-    // Destructor
-
-        virtual ~entry()
-        {}
+    //- Destructor
+    virtual ~entry()
+    {}
 
 
     // Member functions
diff --git a/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.H b/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.H
index 1955892727c5e54e77b0f605b7618094f7ea6f7a..807ea19825dd51eec6a38d145ec56c06f559a2fa 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.H
+++ b/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.H
@@ -34,7 +34,6 @@ Description
 
 SourceFiles
     processorPolyPatch.C
-    processorPolyPatchMorph.C
 
 \*---------------------------------------------------------------------------*/
 
diff --git a/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheck.C b/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheck.C
index 9ca9d2d416af2fff447fad1bdb7413283720d60e..36d6b1a28f34da1748e22ef35fe5fe0f04e907c4 100644
--- a/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheck.C
+++ b/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheck.C
@@ -1836,19 +1836,21 @@ bool Foam::primitiveMesh::checkFaceFaces
 
     if (nErrorDuplicate > 0 || nErrorOrder > 0)
     {
+        // These are actually warnings, not errors.
         if (nErrorDuplicate > 0)
         {
-            Info<< " ***Number of duplicate (not baffle) faces found: "
-                << nErrorDuplicate << endl;
+            Info<< "  <<Number of duplicate (not baffle) faces found: "
+                << nErrorDuplicate
+                << ". This might indicate a problem." << endl;
         }
 
         if (nErrorOrder > 0)
         {
-            Info<< " ***Number of faces with non-consecutive shared points: "
-                << nErrorOrder << endl;
+            Info<< "  <<Number of faces with non-consecutive shared points: "
+                << nErrorOrder << ". This might indicate a problem." << endl;
         }
 
-        return true;
+        return false;   //return true;
     }
     else
     {
diff --git a/src/surfMesh/MeshedSurface/MeshedSurface.C b/src/surfMesh/MeshedSurface/MeshedSurface.C
index 1c1622c0ebb13898bb5e6d34a6ed6c5b5f446d1e..3cf72dbcbc518d06479bc12a370f211fd186f84b 100644
--- a/src/surfMesh/MeshedSurface/MeshedSurface.C
+++ b/src/surfMesh/MeshedSurface/MeshedSurface.C
@@ -918,7 +918,7 @@ Foam::label Foam::MeshedSurface<Face>::triangulate
             // 'face' not '<Face>'
             const face& f = faceLst[faceI];
 
-            label nTmp;
+            label nTmp = 0;
             f.triangles(this->points(), nTmp, tmpTri);
             for (label triI = 0; triI < nTmp; triI++)
             {
diff --git a/src/turbulenceModels/compressible/LES/LESModel/LESModel.C b/src/turbulenceModels/compressible/LES/LESModel/LESModel.C
index c32cb077d8a82a5425ec70060bd6dfb371187e32..6ac295dea68c6bcf8ec213714e6fee2f40b45ed1 100644
--- a/src/turbulenceModels/compressible/LES/LESModel/LESModel.C
+++ b/src/turbulenceModels/compressible/LES/LESModel/LESModel.C
@@ -77,7 +77,7 @@ LESModel::LESModel
     ),
 
     printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)),
-    coeffDict_(subDictPtr(type + "Coeffs")),
+    coeffDict_(subOrEmptyDict(type + "Coeffs")),
 
     k0_("k0", dimVelocity*dimVelocity, SMALL),
 
diff --git a/src/turbulenceModels/compressible/RAS/RASModel/RASModel.C b/src/turbulenceModels/compressible/RAS/RASModel/RASModel.C
index 642fc686d695e583ef83fe4b3ea0bbada5c986c8..ffab28703b52976b621b8dd3506ded787962e2e6 100644
--- a/src/turbulenceModels/compressible/RAS/RASModel/RASModel.C
+++ b/src/turbulenceModels/compressible/RAS/RASModel/RASModel.C
@@ -79,7 +79,7 @@ RASModel::RASModel
 
     turbulence_(lookup("turbulence")),
     printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)),
-    coeffDict_(subDictPtr(type + "Coeffs")),
+    coeffDict_(subOrEmptyDict(type + "Coeffs")),
 
     k0_("k0", dimVelocity*dimVelocity, SMALL),
     epsilon0_("epsilon", k0_.dimensions()/dimTime, SMALL),
diff --git a/src/turbulenceModels/incompressible/LES/LESModel/LESModel.C b/src/turbulenceModels/incompressible/LES/LESModel/LESModel.C
index 76c2ef0ba475c0ba25be0728c787087a2bff2db4..fd7791d9f322cfae4c5ba3bd81335d714fe00903 100644
--- a/src/turbulenceModels/incompressible/LES/LESModel/LESModel.C
+++ b/src/turbulenceModels/incompressible/LES/LESModel/LESModel.C
@@ -76,7 +76,7 @@ LESModel::LESModel
     ),
 
     printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)),
-    coeffDict_(subDictPtr(type + "Coeffs")),
+    coeffDict_(subOrEmptyDict(type + "Coeffs")),
 
     k0_("k0", dimVelocity*dimVelocity, SMALL),
     delta_(LESdelta::New("delta", U.mesh(), *this))
diff --git a/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.C b/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.C
index 9a6a447166bac7a3616a7092fc9ccf28b197afd8..1803075428c9e1ac2a8b9b0317fe9f9ef6f49b79 100644
--- a/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.C
+++ b/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.C
@@ -78,7 +78,7 @@ RASModel::RASModel
 
     turbulence_(lookup("turbulence")),
     printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)),
-    coeffDict_(subDictPtr(type + "Coeffs")),
+    coeffDict_(subOrEmptyDict(type + "Coeffs")),
 
     k0_("k0", dimVelocity*dimVelocity, SMALL),
     epsilon0_("epsilon", k0_.dimensions()/dimTime, SMALL),