diff --git a/src/OpenFOAM/db/Time/Time.C b/src/OpenFOAM/db/Time/Time.C
index 7c0bc062e1c864d6f59d420d4f175256c7e52b11..c215eb6956cb89c62b887e5417ff497d7cb45963 100644
--- a/src/OpenFOAM/db/Time/Time.C
+++ b/src/OpenFOAM/db/Time/Time.C
@@ -711,6 +711,38 @@ Foam::Time::Time
 }
 
 
+// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
+
+Foam::autoPtr<Foam::Time> Foam::Time::New()
+{
+    return
+        autoPtr<Time>::New
+        (
+            ".",            // root-path
+            ".",            // case-name
+            "system",
+            "constant",
+            false,          // No enableFunctionObjects
+            false           // No enableLibs
+        );
+}
+
+
+Foam::autoPtr<Foam::Time> Foam::Time::New(const fileName& caseDir)
+{
+    return
+        autoPtr<Time>::New
+        (
+            caseDir.path(), // root-path
+            caseDir.name(), // case-name
+            "system",
+            "constant",
+            false,          // No enableFunctionObjects
+            false           // No enableLibs
+        );
+}
+
+
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::Time::~Time()
diff --git a/src/OpenFOAM/db/Time/Time.H b/src/OpenFOAM/db/Time/Time.H
index 9b8f37e2526b0b9b74e60b5ac08f0d429f47fa24..0f1147519e7ea93284e3ce66d0ea917acceff2cc 100644
--- a/src/OpenFOAM/db/Time/Time.H
+++ b/src/OpenFOAM/db/Time/Time.H
@@ -271,6 +271,15 @@ public:
         );
 
 
+    // Selectors
+
+        //- Construct dummy time, without functionObjects or libraries
+        static autoPtr<Time> New();
+
+        //- Construct dummy time, without functionObjects or libraries
+        static autoPtr<Time> New(const fileName& caseDir);
+
+
     //- Destructor
     virtual ~Time();
 
diff --git a/src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C
index a5982d638902b5ee49846ce13636478bdfa42b9a..f5eddc4139c0091e923838f6527db226f01a9c62 100644
--- a/src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C
@@ -52,22 +52,15 @@ bool Foam::fileFormats::edgeMeshFormat::read
 {
     clear();
 
-    // Construct dummy time to use as an objectRegistry
-    Time dummyTime
-    (
-        ".",        //rootPath,
-        ".",        //caseName,
-        "system",   //systemName,
-        "constant", //constantName,
-        false       //enableFunctionObjects
-    );
+    // Use dummy Time for objectRegistry
+    autoPtr<Time> dummyTimePtr(Time::New());
 
     // Construct IOobject to re-use the headerOk & readHeader
     // (so we can read ascii and binary)
     IOobject io
     (
         filename,
-        dummyTime,
+        *dummyTimePtr,
         IOobject::NO_READ,
         IOobject::NO_WRITE,
         false
@@ -150,21 +143,14 @@ void Foam::fileFormats::edgeMeshFormat::write
     const edgeMesh& mesh
 )
 {
-    // Construct dummy time to use as an objectRegistry
-    Time dummyTime
-    (
-        ".",        //rootPath,
-        ".",        //caseName,
-        "system",   //systemName,
-        "constant", //constantName,
-        false       //enableFunctionObjects
-    );
+    // Use dummy Time for objectRegistry
+    autoPtr<Time> dummyTimePtr(Time::New());
 
     // Construct IOobject to re-use the writeHeader
     IOobject io
     (
         filename,
-        dummyTime,
+        *dummyTimePtr,
         IOobject::NO_READ,
         IOobject::NO_WRITE,
         false
diff --git a/src/meshTools/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.C b/src/meshTools/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.C
index 7e6ab903a72c58125994e8309c07cb7f1635e119..b24c62216ee949f1d405bff5d8f171f53943d2e0 100644
--- a/src/meshTools/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           |
+    \\  /    A nd           | Copyright (C) 2019 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
                             | Copyright (C) 2011-2017 OpenFOAM Foundation
@@ -98,24 +98,15 @@ bool Foam::fileFormats::VTKedgeFormat::read
             << exit(FatalError);
     }
 
-    // Construct dummy time so we have something to create an objectRegistry
-    // from
-    Time dummyTime
-    (
-        "dummyRoot",
-        "dummyCase",
-        "system",
-        "constant",
-        false           // enableFunctionObjects
-    );
+    // Use dummy Time for objectRegistry
+    autoPtr<Time> dummyTimePtr(Time::New());
 
-    // Make dummy object registry
     objectRegistry obr
     (
         IOobject
         (
-            "dummy",
-            dummyTime,
+            "vtk::edgeFormat",
+            *dummyTimePtr,
             IOobject::NO_READ,
             IOobject::NO_WRITE,
             false
diff --git a/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.C b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.C
index 9070943bc23b85251b834fa25031f22fd21e12c6..0e4c9e5ab361c7cd72f9a7a69af192e95c4af8b0 100644
--- a/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.C
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.C
@@ -50,22 +50,15 @@ bool Foam::fileFormats::extendedEdgeMeshFormat::read
 {
     clear();
 
-    // Construct dummy time to use as an objectRegistry
-    Time dummyTime
-    (
-        ".",        //rootPath,
-        ".",        //caseName,
-        "system",   //systemName,
-        "constant", //constantName,
-        false       //enableFunctionObjects
-    );
+    // Use dummy Time for objectRegistry
+    autoPtr<Time> dummyTimePtr(Time::New());
 
     // Construct IOobject to re-use the headerOk & readHeader
     // (so we can read ascii and binary)
     IOobject io
     (
         filename,
-        dummyTime,
+        *dummyTimePtr,
         IOobject::NO_READ,
         IOobject::NO_WRITE,
         false
diff --git a/src/surfMesh/surfaceFormats/vtk/VTKsurfaceFormat.C b/src/surfMesh/surfaceFormats/vtk/VTKsurfaceFormat.C
index 6d5a5f7eaf3d1fff10fb802a74b3fe364e4875fa..ca4dadfbc26089c85a80ef92870b021e2e9228d4 100644
--- a/src/surfMesh/surfaceFormats/vtk/VTKsurfaceFormat.C
+++ b/src/surfMesh/surfaceFormats/vtk/VTKsurfaceFormat.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016-2018 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2016-2019 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
                             | Copyright (C) 2011-2016 OpenFOAM Foundation
@@ -102,24 +102,15 @@ bool Foam::fileFormats::VTKsurfaceFormat<Face>::read
     bool sorted = true;
 
 
-    // Construct dummy time so we have something to create an objectRegistry
-    // from
-    Time dummyTime
-    (
-        "dummyRoot",
-        "dummyCase",
-        "system",
-        "constant",
-        false           // enableFunctionObjects
-    );
+    // Use dummy Time for objectRegistry
+    autoPtr<Time> dummyTimePtr(Time::New());
 
-    // Make dummy object registry
     objectRegistry obr
     (
         IOobject
         (
-            "dummy",
-            dummyTime,
+            "vtk::surfaceFormat",
+            *dummyTimePtr,
             IOobject::NO_READ,
             IOobject::NO_WRITE,
             false
diff --git a/src/surfMesh/writers/boundaryData/boundaryDataSurfaceWriter.C b/src/surfMesh/writers/boundaryData/boundaryDataSurfaceWriter.C
index fc8482b81410fc55c2f5789f3b226f77f770837f..756e1043ea00011dd82442128b6026206cc0f340 100644
--- a/src/surfMesh/writers/boundaryData/boundaryDataSurfaceWriter.C
+++ b/src/surfMesh/writers/boundaryData/boundaryDataSurfaceWriter.C
@@ -112,18 +112,8 @@ Foam::fileName Foam::surfaceWriters::boundaryDataWriter::write()
     }
 
 
-    // Dummy time to use as an objectRegistry
-    const fileName caseDir(argList::envGlobalPath());
-
-    Time dummyTime
-    (
-        caseDir.path(), // root-path,
-        caseDir.name(), // case-name,
-        "system",       //
-        "constant",     //
-        false,          // no function objects
-        false           // no libs
-    );
+    // Dummy Time to use as objectRegistry
+    autoPtr<Time> dummyTimePtr(Time::New(argList::envGlobalPath()));
 
 
     const meshedSurf& surf = surface();
@@ -140,7 +130,7 @@ Foam::fileName Foam::surfaceWriters::boundaryDataWriter::write()
             IOobject
             (
                 surfaceDir/"points",
-                dummyTime,
+                *dummyTimePtr,
                 IOobject::NO_READ,
                 IOobject::NO_WRITE,
                 false
@@ -183,18 +173,8 @@ Foam::fileName Foam::surfaceWriters::boundaryDataWriter::writeTemplate
     const fileName outputFile(surfaceDir/timeName()/fieldName);
 
 
-    // Dummy time to use as an objectRegistry
-    const fileName caseDir(argList::envGlobalPath());
-
-    Time dummyTime
-    (
-        caseDir.path(), // root-path,
-        caseDir.name(), // case-name,
-        "system",       //
-        "constant",     //
-        false,          // no function objects
-        false           // no libs
-    );
+    // Dummy Time to use as objectRegistry
+    autoPtr<Time> dummyTimePtr(Time::New(argList::envGlobalPath()));
 
 
     // Geometry merge() implicit
@@ -217,7 +197,7 @@ Foam::fileName Foam::surfaceWriters::boundaryDataWriter::writeTemplate
             IOobject
             (
                 surfaceDir/"points",
-                dummyTime,
+                *dummyTimePtr,
                 IOobject::NO_READ,
                 IOobject::NO_WRITE,
                 false