diff --git a/src/core/CLucene/store/RAMDirectory.cpp b/src/core/CLucene/store/RAMDirectory.cpp
index 8826abc..e80c37b 100644
--- a/src/core/CLucene/store/RAMDirectory.cpp
+++ b/src/core/CLucene/store/RAMDirectory.cpp
@@ -51,10 +51,6 @@ CL_NS_DEF(store)
   }
 
   RAMFile::~RAMFile(){
-      if ( directory != NULL ) {
-          SCOPED_LOCK_MUTEX(directory->THIS_LOCK);
-          directory->sizeInBytes -= sizeInBytes;
-      } 
   }
 
   int64_t RAMFile::getLength()
@@ -477,8 +473,14 @@ CL_NS_DEF(store)
 
   bool RAMDirectory::doDeleteFile(const char* name) {
     SCOPED_LOCK_MUTEX(files_mutex);
-    files->removeitr( files->find((char*)name) );
-    return true;
+    FileMap::iterator itr = files->find((char*)name);
+    if (itr != files->end()) {
+        sizeInBytes -= itr->second->sizeInBytes;
+        files->removeitr(itr);
+        return true;
+    } else {
+        return false;
+    }
   }
 
   void RAMDirectory::renameFile(const char* from, const char* to) {
