diff --git a/applications/utilities/mesh/generation/foamyQuadMesh/CV2D.C b/applications/utilities/mesh/generation/foamyQuadMesh/CV2D.C
index deb0605aa098c83c5ff777c8b41928dd91d767a6..0ce6e785b61d8c0f63cd6caeaabddeb91f5bcaa9 100644
--- a/applications/utilities/mesh/generation/foamyQuadMesh/CV2D.C
+++ b/applications/utilities/mesh/generation/foamyQuadMesh/CV2D.C
@@ -542,7 +542,7 @@ void Foam::CV2D::newPoints()
             alignmentDirsB[0].x()
         );
 
-        Field<vector2D> alignmentDirs(2);
+        Field<vector2D> alignmentDirs(alignmentDirsA);
 
         forAll(alignmentDirsA, aA)
         {
diff --git a/src/OpenFOAM/db/IOobject/IOobject.C b/src/OpenFOAM/db/IOobject/IOobject.C
index 74844aea826feb5f199db842a71e227743d3916c..65fddffbbcbffcead3a73779e3c939e6d0701531 100644
--- a/src/OpenFOAM/db/IOobject/IOobject.C
+++ b/src/OpenFOAM/db/IOobject/IOobject.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -323,8 +323,8 @@ Foam::fileName Foam::IOobject::filePath() const
             )
             {
                 fileName parentObjectPath =
-                    rootPath()/caseName()
-                   /".."/instance()/db_.dbDir()/local()/name();
+                    rootPath()/time().globalCaseName()
+                   /instance()/db_.dbDir()/local()/name();
 
                 if (isFile(parentObjectPath))
                 {
diff --git a/src/OpenFOAM/db/Time/Time.C b/src/OpenFOAM/db/Time/Time.C
index 1eb31e15fc38d8a9864042a358597e35c5c77cff..94c8b9cac4682b4c14ec552d69311c8a5e776663 100644
--- a/src/OpenFOAM/db/Time/Time.C
+++ b/src/OpenFOAM/db/Time/Time.C
@@ -386,7 +386,9 @@ Foam::Time::Time
 :
     TimePaths
     (
+        args.parRunControl().parRun(),
         args.rootPath(),
+        args.globalCaseName(),
         args.caseName(),
         systemName,
         constantName
@@ -702,13 +704,27 @@ Foam::instantList Foam::Time::times() const
 
 Foam::word Foam::Time::findInstancePath(const instant& t) const
 {
-    instantList timeDirs = findTimes(path(), constant());
+    const fileName directory = path();
+    const word& constantName = constant();
+
+    // Read directory entries into a list
+    fileNameList dirEntries(readDir(directory, fileName::DIRECTORY));
+
+    forAll(dirEntries, i)
+    {
+        scalar timeValue;
+        if (readScalar(dirEntries[i].c_str(), timeValue) && t.equal(timeValue))
+        {
+            return dirEntries[i];
+        }
+    }
 
-    forAllReverse(timeDirs, timeI)
+    if (t.equal(0.0))
     {
-        if (timeDirs[timeI] == t)
+        // Looking for 0 or constant. 0 already checked above.
+        if (isDir(directory/constantName))
         {
-            return timeDirs[timeI].name();
+            return constantName;
         }
     }
 
diff --git a/src/OpenFOAM/db/Time/TimePaths.C b/src/OpenFOAM/db/Time/TimePaths.C
index b97398b87659898b7898aec4261d70ee4f796e1e..29f2c6967e55b38fa06147fcc368b58a04612e6b 100644
--- a/src/OpenFOAM/db/Time/TimePaths.C
+++ b/src/OpenFOAM/db/Time/TimePaths.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -35,11 +35,41 @@ Foam::TimePaths::TimePaths
     const word& constantName
 )
 :
-    processorCase_(caseName.find("processor") != string::npos),
+    processorCase_(false),
     rootPath_(rootPath),
     case_(caseName),
     system_(systemName),
     constant_(constantName)
+{
+    std::string::size_type pos = caseName.find("processor");
+    if (pos != string::npos)
+    {
+        processorCase_ = true;
+        globalCaseName_ = caseName(pos-1);
+    }
+    else
+    {
+        globalCaseName_ = caseName;
+    }
+}
+
+
+Foam::TimePaths::TimePaths
+(
+    const bool processorCase,
+    const fileName& rootPath,
+    const fileName& globalCaseName,
+    const fileName& caseName,
+    const word& systemName,
+    const word& constantName
+)
+:
+    processorCase_(processorCase),
+    rootPath_(rootPath),
+    globalCaseName_(globalCaseName),
+    case_(caseName),
+    system_(systemName),
+    constant_(constantName)
 {}
 
 
diff --git a/src/OpenFOAM/db/Time/TimePaths.H b/src/OpenFOAM/db/Time/TimePaths.H
index 3f261be6444d921abdddb93241d1311c38a1071e..0f5e1b11fd4384d07c4bc9865803e973bf0f11eb 100644
--- a/src/OpenFOAM/db/Time/TimePaths.H
+++ b/src/OpenFOAM/db/Time/TimePaths.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -52,10 +52,11 @@ class TimePaths
     // Private data
 
         bool processorCase_;
-        fileName rootPath_;
-        fileName case_;
-        word system_;
-        word constant_;
+        const fileName rootPath_;
+        fileName globalCaseName_;
+        const fileName case_;
+        const word system_;
+        const word constant_;
 
 
 public:
@@ -72,6 +73,18 @@ public:
         );
 
 
+        //- Construct given database name, rootPath and casePath
+        TimePaths
+        (
+            const bool processorCase,
+            const fileName& rootPath,
+            const fileName& globalCaseName,
+            const fileName& caseName,
+            const word& systemName,
+            const word& constantName
+        );
+
+
     // Member functions
 
             //- Return true if this is a processor case
@@ -86,6 +99,12 @@ public:
                 return rootPath_;
             }
 
+            //- Return global case name
+            const fileName& globalCaseName() const
+            {
+                return globalCaseName_;
+            }
+
             //- Return case name
             const fileName& caseName() const
             {
diff --git a/src/OpenFOAM/db/Time/instant/instant.C b/src/OpenFOAM/db/Time/instant/instant.C
index 46f6bb73f181dba4d467621f820e4130cdfda806..bcbe24e55db7705a76d1598a7ac9dcd7894621a9 100644
--- a/src/OpenFOAM/db/Time/instant/instant.C
+++ b/src/OpenFOAM/db/Time/instant/instant.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -54,15 +54,19 @@ Foam::instant::instant(const word& tname)
 {}
 
 
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+bool Foam::instant::equal(const scalar b) const
+{
+    return (value_ < b + SMALL  && value_ > b - SMALL);
+}
+
+
 // * * * * * * * * * * * * * * * Friend Operators  * * * * * * * * * * * * * //
 
 bool Foam::operator==(const instant& a, const instant& b)
 {
-    return
-    (
-        a.value_ < b.value_ + SMALL
-     && a.value_ > b.value_ - SMALL
-    );
+    return a.equal(b.value_);
 }
 
 
diff --git a/src/OpenFOAM/db/Time/instant/instant.H b/src/OpenFOAM/db/Time/instant/instant.H
index 9682d8e3f7eefdf7ddad825e67e842d825dc1317..be3ea4e011362b6cf8a4c7394f8398b871a63527 100644
--- a/src/OpenFOAM/db/Time/instant/instant.H
+++ b/src/OpenFOAM/db/Time/instant/instant.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -99,10 +99,10 @@ public:
         instant(const scalar, const word&);
 
         //- Construct from time value
-        instant(const scalar);
+        explicit instant(const scalar);
 
         //- Construct from word
-        instant(const word&);
+        explicit instant(const word&);
 
 
     // Member Functions
@@ -133,6 +133,9 @@ public:
                 return name_;
             }
 
+            //- Comparison used for instants to be equal
+            bool equal(const scalar) const;
+
 
     // Friend Operators