while queue:
             cur_path = queue.pop()
 
+            # it might have been removed in the mean time
+            if not os.path.exists(cur_path):
+                continue
+
             for child in walk_dir(cur_path):
                 is_dir = os.path.isdir(child)
                 status = self.filter_path(child, source_path, is_dir)
 
         self.hash["source_dir/bigdir/a"] = self.create_file("source_dir/bigdir/a", 100)
         self.hash["source_dir/bigdir/b"] = self.create_file("source_dir/bigdir/b", 500)
         self.hash["source_dir/zzzz"]  = self.create_file("source_dir/zzzz", 100)
+        shutil.rmtree("source_dir/test")
 
         deltatar.create_diff_backup("source_dir", "backup_dir2",
                                     prev_index_path)