diff --git a/tsk/fs/yaffs.cpp b/tsk/fs/yaffs.cpp
index d64504f1c44c2ba1a2475700892b271aa0fe055d..66cb60489a309c9c602ea470bbafdbd9650617cc 100644
--- a/tsk/fs/yaffs.cpp
+++ b/tsk/fs/yaffs.cpp
@@ -634,20 +634,22 @@ static void
 static void
     yaffscache_chunks_free(YAFFSFS_INFO *yfs)
 {
-    // Free the YaffsCacheChunks in each ChunkGroup
-    std::map<unsigned int,YaffsCacheChunkGroup>::iterator iter;
-    for( iter = yfs->chunkMap->begin(); iter != yfs->chunkMap->end(); ++iter ) {
-        YaffsCacheChunk *chunk = yfs->chunkMap->operator[](iter->first).cache_chunks_head;
-        while(chunk != NULL) {
-            YaffsCacheChunk *to_free = chunk;
-            chunk = chunk->ycc_next;
-            free(to_free);
+    if(yfs->chunkMap != NULL){
+        // Free the YaffsCacheChunks in each ChunkGroup
+        std::map<unsigned int,YaffsCacheChunkGroup>::iterator iter;
+        for( iter = yfs->chunkMap->begin(); iter != yfs->chunkMap->end(); ++iter ) {
+            YaffsCacheChunk *chunk = yfs->chunkMap->operator[](iter->first).cache_chunks_head;
+            while(chunk != NULL) {
+                YaffsCacheChunk *to_free = chunk;
+                chunk = chunk->ycc_next;
+                free(to_free);
+            }
         }
-    }
 
-    // Free the map
-    yfs->chunkMap->clear();
-    delete yfs->chunkMap;
+        // Free the map
+        yfs->chunkMap->clear();
+        delete yfs->chunkMap;
+	}
 
 }
 
@@ -2459,7 +2461,10 @@ static void
 
     // Walk and free the cache structures
     yaffscache_objects_free(yfs);
+	fprintf(stderr, "After objects free\n");
+	fflush(stderr);
     yaffscache_chunks_free(yfs);
+	fprintf(stderr, "After chunks free\n");
 
     //tsk_deinit_lock(&yaffsfs->lock);