Index: videolist.cpp
===================================================================
--- videolist.cpp	(revision 13090)
+++ videolist.cpp	(working copy)
@@ -194,6 +194,30 @@
             m_entires.push_back(entry);
         }
 
+        bool purgeByMetaID(unsigned int meta_id)
+        {
+            for (entry_iterator p = entries_begin();
+                 p != entries_end(); ++p)
+            {
+                if (meta_id == (*p)->getData()->ID())
+                {
+                    m_entires.erase(p);
+                    return true;
+                }
+            }
+
+            for (dir_iterator p = dirs_begin();
+                 p != dirs_end(); ++p)
+            {
+                if ((*p)->purgeByMetaID(meta_id))
+                {
+                    return true;
+                }
+            }
+
+            return false;
+        }
+
         void clear()
         {
             m_subdirs.clear();
@@ -486,6 +510,7 @@
         {
             ret = mp->deleteFile();
             if (ret) ret = m_metadata.purgeByID(video_id);
+            if (ret) ret = m_metadata_tree.purgeByMetaID(mp->ID());
         }
 
         return ret;
