diff --git a/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObject.C b/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObject.C
index 4fd3fd9a683da5ec8cb25302c43850628ada3acb..81b58a1a5cdfdf800112297ca347c923b7753b6e 100644
--- a/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObject.C
+++ b/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObject.C
@@ -91,25 +91,14 @@ void Foam::writeRegisteredObject::write()
 {
     Info<< type() << " " << name_ << " output:" << nl;
 
+    DynamicList<word> allNames(obr_.toc().size());
     forAll(objectNames_, i)
     {
-        if (obr_.foundObject<regIOobject>(objectNames_[i]))
-        {
-            regIOobject& obj =
-                const_cast<regIOobject&>
-                (
-                    obr_.lookupObject<regIOobject>(objectNames_[i])
-                );
-
-            if (exclusiveWriting_)
-            {
-                // Switch off automatic writing to prevent double write
-                obj.writeOpt() = IOobject::NO_WRITE;
-            }
-
-            Info<< "    writing object " << obj.name() << nl << endl;
+        wordList names(obr_.names<regIOobject>(objectNames_[i]));
 
-            obj.write();
+        if (names.size())
+        {
+            allNames.append(names);
         }
         else
         {
@@ -119,6 +108,25 @@ void Foam::writeRegisteredObject::write()
                 << endl;
         }
     }
+
+    forAll(allNames, i)
+    {
+        regIOobject& obj =
+            const_cast<regIOobject&>
+            (
+                obr_.lookupObject<regIOobject>(allNames[i])
+            );
+
+        if (exclusiveWriting_)
+        {
+            // Switch off automatic writing to prevent double write
+            obj.writeOpt() = IOobject::NO_WRITE;
+        }
+
+        Info<< "    writing object " << obj.name() << nl << endl;
+
+        obj.write();
+    }
 }
 
 
diff --git a/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObject.H b/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObject.H
index d36e0d943132dc5403048d01a942f8aac3fb952f..d08dc7c914c5d97a1cd574563e08f863650135fe 100644
--- a/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObject.H
+++ b/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObject.H
@@ -74,7 +74,7 @@ SourceFiles
 #ifndef writeRegisteredObject_H
 #define writeRegisteredObject_H
 
-#include "wordList.H"
+#include "wordReList.H"
 #include "runTimeSelectionTables.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -110,7 +110,7 @@ protected:
         // Read from dictionary
 
             //- Names of objects to control
-            wordList objectNames_;
+            wordReList objectNames_;
 
 
     // Private Member Functions