diff --git a/src/dispatcher.cc b/src/dispatcher.cc
index 390cb4a..46e0e1b 100644
--- a/src/dispatcher.cc
+++ b/src/dispatcher.cc
@@ -61,6 +61,7 @@
                                        ActionLog::OnFileAddedOrChangedCallback (), // don't really need this callback
                                        bind (&Dispatcher::Did_ActionLog_ActionApply_Delete, this, _1));
   m_fileState = m_actionLog->GetFileState ();
+  m_fileStateCow = make_shared<FileState> (m_rootDir, true);
 
   Name syncPrefix = Name(BROADCAST_DOMAIN)(CHRONOSHARE_APP)(sharedFolder);
 
@@ -206,7 +207,10 @@
       return;
     }
 
-  FileItemPtr currentFile = m_fileState->LookupFile (relativeFilePath.generic_string ());
+  FileItemPtr currentFile = m_fileStateCow->LookupFile (relativeFilePath.generic_string ());
+  if(!currentFile)
+    currentFile = m_fileState->LookupFile (relativeFilePath.generic_string ());
+
   if (currentFile &&
       *Hash::FromFileContent (absolutePath) == Hash (currentFile->file_hash ().c_str (), currentFile->file_hash ().size ())
       // The following two are commented out to prevent front end from reporting intermediate files
@@ -219,13 +223,6 @@
       return;
     }
 
-  if (currentFile &&
-      !currentFile->is_complete ())
-    {
-      _LOG_ERROR ("Got notification about incomplete file [" << relativeFilePath << "]");
-      return;
-    }
-
 
   int seg_num;
   HashPtr hash;
@@ -473,6 +470,12 @@
        file != filesToAssemble->end ();
        file++)
     {
+      m_fileStateCow->UpdateFile (file->filename(), file->version(),
+                                  Hash(file->file_hash ().c_str(), file->file_hash ().size ()), 
+                                  CcnxCharbuf (file->device_name().c_str(), file->device_name().size()), file->seq_no(),
+                                  file->mtime(), file->mtime(), file->mtime(), 
+                                  file->mode(), file->seg_num());
+
       boost::filesystem::path filePath = m_rootDir / file->filename ();
 
       try
@@ -504,6 +507,7 @@
 #endif
 
             m_fileState->SetFileComplete (file->filename ());
+            m_fileStateCow->DeleteFile(file->filename());
           }
         else
           {
diff --git a/src/dispatcher.h b/src/dispatcher.h
index d3b6bc3..d5c0f30 100644
--- a/src/dispatcher.h
+++ b/src/dispatcher.h
@@ -165,6 +165,7 @@
   SyncLogPtr   m_syncLog;
   ActionLogPtr m_actionLog;
   FileStatePtr m_fileState;
+  FileStatePtr m_fileStateCow;
 
   boost::filesystem::path m_rootDir;
   Executor m_executor;
diff --git a/src/file-state.cc b/src/file-state.cc
index d361eb7..fa998de 100644
--- a/src/file-state.cc
+++ b/src/file-state.cc
@@ -52,8 +52,8 @@
 CREATE INDEX FileState_type_file_hash ON FileState (type, file_hash);   \n\
 ";
 
-FileState::FileState (const boost::filesystem::path &path)
-  : DbHelper (path / ".chronoshare", "file-state.db")
+FileState::FileState (const boost::filesystem::path &path, bool cow)
+  : DbHelper (path / ".chronoshare",  (cow ? "file-state-tmp.db" : "file-state.db"))
 {
   sqlite3_exec (m_db, INIT_DATABASE.c_str (), NULL, NULL, NULL);
   _LOG_DEBUG_COND (sqlite3_errcode (m_db) != SQLITE_OK, sqlite3_errmsg (m_db));
diff --git a/src/file-state.h b/src/file-state.h
index 0a8a7b2..b0890a2 100644
--- a/src/file-state.h
+++ b/src/file-state.h
@@ -41,7 +41,7 @@
 class FileState : public DbHelper
 {
 public:
-  FileState (const boost::filesystem::path &path);
+  FileState (const boost::filesystem::path &path, bool cow = false);
   ~FileState ();
 
   /**
