diff --git a/src/OSspecific/POSIX/fileMonitor.C b/src/OSspecific/POSIX/fileMonitor.C
index 069ef6de9344c71e4c47fc6081bf37add74ec669..318262d9d764940d97e3e3b76f412271068f3e95 100644
--- a/src/OSspecific/POSIX/fileMonitor.C
+++ b/src/OSspecific/POSIX/fileMonitor.C
@@ -319,7 +319,7 @@ void Foam::fileMonitor::checkFiles() const
 
             if (ready < 0)
             {
-                FatalErrorIn("fileMonitor::updateStates()")
+                FatalErrorIn("fileMonitor::checkFiles()")
                     << "Problem in issuing select."
                     << abort(FatalError);
             }
@@ -335,7 +335,7 @@ void Foam::fileMonitor::checkFiles() const
 
                 if (nBytes < 0)
                 {
-                    FatalErrorIn("fileMonitor::updateStates(const fileName&)")
+                    FatalErrorIn("fileMonitor::checkFiles()")
                         << "read of " << watcher_->inotifyFd_
                         << " failed with " << label(nBytes)
                         << abort(FatalError);
@@ -374,7 +374,7 @@ void Foam::fileMonitor::checkFiles() const
                             )
                             {
                                 // Correct directory and name
-                                state_[i] = MODIFIED;
+                                localState_[i] = MODIFIED;
                             }
                         }
                     }
@@ -403,18 +403,17 @@ void Foam::fileMonitor::checkFiles() const
 
                 if (newTime == 0)
                 {
-                    state_[watchFd] = DELETED;
+                    localState_[watchFd] = DELETED;
                 }
                 else
                 {
                     if (newTime > (oldTime + regIOobject::fileModificationSkew))
                     {
-                        watcher_->lastMod_[watchFd] = newTime;
-                        state_[watchFd] = MODIFIED;
+                        localState_[watchFd] = MODIFIED;
                     }
                     else
                     {
-                        state_[watchFd] = UNMODIFIED;
+                        localState_[watchFd] = UNMODIFIED;
                     }
                 }
             }
@@ -422,12 +421,14 @@ void Foam::fileMonitor::checkFiles() const
     }
 }
 
+
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 
 Foam::fileMonitor::fileMonitor(const bool useInotify)
 :
     useInotify_(useInotify),
+    localState_(20),
     state_(20),
     watchFile_(20),
     freeWatchFds_(2),
@@ -476,6 +477,7 @@ Foam::label Foam::fileMonitor::addWatch(const fileName& fName)
     }
     else
     {
+        localState_(watchFd) = UNMODIFIED;
         state_(watchFd) = UNMODIFIED;
         watchFile_(watchFd) = fName;
     }
@@ -517,30 +519,26 @@ void Foam::fileMonitor::updateStates
 {
     if (Pstream::master() || !masterOnly)
     {
+        // Update the localState_
         checkFiles();
     }
 
     if (syncPar)
     {
-        // Pack current state (might be on master only)
+        // Pack local state (might be on master only)
         PackedList<2> stats(state_.size(), MODIFIED);
         if (Pstream::master() || !masterOnly)
         {
             forAll(state_, watchFd)
             {
-                stats[watchFd] = static_cast<unsigned int>(state_[watchFd]);
+                stats[watchFd] = static_cast<unsigned int>
+                (
+                    localState_[watchFd]
+                );
             }
         }
 
 
-        // Save local state for warning message below
-        PackedList<2> thisProcStats;
-        if (!masterOnly)
-        {
-            thisProcStats = stats;
-        }
-
-
         // Scatter or reduce to synchronise state
         if (masterOnly)
         {
@@ -573,33 +571,34 @@ void Foam::fileMonitor::updateStates
         }
 
 
-        // Update local state
+        // Update synchronised state
         forAll(state_, watchFd)
         {
-            if (masterOnly)
-            {
-                // No need to check for inconsistent state. Just assign.
-                unsigned int stat = stats[watchFd];
-                state_[watchFd] = fileState(stat);
-            }
-            else
+            // Assign synchronised state
+            unsigned int stat = stats[watchFd];
+            state_[watchFd] = fileState(stat);
+
+            if (!masterOnly)
             {
-                // Check for inconsistent state before assigning.
-                if (thisProcStats[watchFd] != UNMODIFIED)
+                // Give warning for inconsistent state
+                if (state_[watchFd] != localState_[watchFd])
                 {
-                    if (stats[watchFd] == UNMODIFIED)
+                    if (debug)
                     {
-                        WarningIn("fileMonitor::updateStates(const bool) const")
-                            << "Delaying reading " << watchFile_[watchFd]
+                        Pout<< "fileMonitor : Delaying reading "
+                            << watchFile_[watchFd]
                             << " due to inconsistent "
                                "file time-stamps between processors"
                             << endl;
                     }
-                    else
-                    {
-                        unsigned int stat = stats[watchFd];
-                        state_[watchFd] = fileState(stat);
-                    }
+
+                    WarningIn
+                    (
+                        "fileMonitor::updateStates"
+                        "(const bool, const bool) const"
+                    )   << "Delaying reading " << watchFile_[watchFd]
+                        << " due to inconsistent "
+                           "file time-stamps between processors" << endl;
                 }
             }
         }
@@ -610,6 +609,7 @@ void Foam::fileMonitor::updateStates
 void Foam::fileMonitor::setUnmodified(const label watchFd)
 {
     state_[watchFd] = UNMODIFIED;
+    localState_[watchFd] = UNMODIFIED;
 
     if (!useInotify_)
     {
diff --git a/src/OSspecific/POSIX/fileMonitor.H b/src/OSspecific/POSIX/fileMonitor.H
index d19c3b0e90fb35c4aa6f26949a55fc4ac7898799..bdb0dd2bb2f75a82473ef12ffb87c04f844317d8 100644
--- a/src/OSspecific/POSIX/fileMonitor.H
+++ b/src/OSspecific/POSIX/fileMonitor.H
@@ -71,7 +71,7 @@ public:
         {
             UNMODIFIED = 0,
             MODIFIED = 1,
-            DELETED = 2,
+            DELETED = 2
         };
 
         static const NamedEnum<fileState, 3> fileStateNames_;
@@ -82,7 +82,10 @@ private:
         //- Whether to use inotify (requires -DFOAM_USE_INOTIFY, see above)
         const bool useInotify_;
 
-        //- State for all watchFds
+        //- State for all watchFds based on local files
+        mutable DynamicList<fileState> localState_;
+
+        //- State for all watchFds - synchronised
         mutable DynamicList<fileState> state_;
 
         //- Filename for all watchFds
@@ -97,7 +100,7 @@ private:
 
     // Private Member Functions
 
-        //- Update state_ from any events.
+        //- Update localState_ from any events.
         void checkFiles() const;
 
         //- Disallow default bitwise copy construct
diff --git a/src/OpenFOAM/db/regIOobject/regIOobject.C b/src/OpenFOAM/db/regIOobject/regIOobject.C
index 2367d79c60dbc9c5bdcc3066b647920b385d72a1..f43cb4f44ef22261fccfc03393e8797f6aa6c068 100644
--- a/src/OpenFOAM/db/regIOobject/regIOobject.C
+++ b/src/OpenFOAM/db/regIOobject/regIOobject.C
@@ -60,7 +60,6 @@ Foam::regIOobject::fileCheckTypes Foam::regIOobject::fileModificationChecking
         debug::optimisationSwitches().lookup
         (
             "fileModificationChecking"
-            //Foam::regIOobject::timeStamp
         )
     )
 );
diff --git a/src/OpenFOAM/global/argList/argList.C b/src/OpenFOAM/global/argList/argList.C
index d1ee0a63f75f4516402baa1d50de965f92ff3c63..ee623a30bbeed8732506b3796364c07b18251060 100644
--- a/src/OpenFOAM/global/argList/argList.C
+++ b/src/OpenFOAM/global/argList/argList.C
@@ -31,6 +31,7 @@ License
 #include "IOobject.H"
 #include "JobInfo.H"
 #include "labelList.H"
+#include "regIOobject.H"
 
 #include <cctype>
 
@@ -767,6 +768,16 @@ Foam::argList::argList
     sigQuit_.set(bannerEnabled);
     sigSegv_.set(bannerEnabled);
 
+    if (bannerEnabled)
+    {
+        Info<< "Monitoring run-time modified files using "
+            << regIOobject::fileCheckTypesNames
+                [
+                    regIOobject::fileModificationChecking
+                ]
+            << endl;
+    }
+
     if (Pstream::master() && bannerEnabled)
     {
         Info<< endl;