Index: src/libchcore/TFileInfoArray.cpp
===================================================================
diff -u -N -r121d674474766192b5bf02afda67fb962635f56b -re92d7e2b63df1305b23aa04132c45ad8747dc22c
--- src/libchcore/TFileInfoArray.cpp	(.../TFileInfoArray.cpp)	(revision 121d674474766192b5bf02afda67fb962635f56b)
+++ src/libchcore/TFileInfoArray.cpp	(.../TFileInfoArray.cpp)	(revision e92d7e2b63df1305b23aa04132c45ad8747dc22c)
@@ -79,12 +79,12 @@
 void TFileInfoArray::Clear()
 {
 	boost::unique_lock<boost::shared_mutex> lock(m_lock);
-	m_vFiles.clear();
 	m_bComplete = false;
 	BOOST_FOREACH(const TFileInfoPtr& spFileInfo, m_vFiles)
 	{
 		m_setRemovedObjects.Add(spFileInfo->GetObjectID());
 	}
+	m_vFiles.clear();
 }
 
 unsigned long long TFileInfoArray::CalculateTotalSize() const
@@ -141,6 +141,9 @@
 	// to scan again)).
 	if(m_bComplete)
 	{
+		spContainer->DeleteRows(m_setRemovedObjects);
+		m_setRemovedObjects.Clear();
+
 		BOOST_FOREACH(const TFileInfoPtr& spFileInfo, m_vFiles)
 		{
 			spFileInfo->Store(spContainer);