=== modified file 'src/media-object-factory.cpp'
--- src/media-object-factory.cpp	2015-01-25 20:09:25 +0000
+++ src/media-object-factory.cpp	2015-01-26 18:48:40 +0000
@@ -151,8 +151,10 @@
         path = createQueue.takeFirst();
         createMutex.unlock();
 
-        if(!path.isEmpty())
-            create(path);   
+        QFileInfo file(path);
+        if(file.exists()) {
+            create(path);
+        }
     }
 }
 

=== modified file 'src/media/media-collection.cpp'
--- src/media/media-collection.cpp	2015-01-23 20:00:50 +0000
+++ src/media/media-collection.cpp	2015-01-26 18:48:40 +0000
@@ -161,6 +161,21 @@
 /*!
  * \reimp
  */
+void MediaCollection::add(DataObject *object)
+{
+    MediaSource* media = qobject_cast<MediaSource*>(object);
+    if (media->file().exists()) {
+        m_idMap.insert(media->id(), media);
+        DataCollection::add(object);
+    } else {
+        m_mediaTable->remove(media->id());
+        media->deleteLater();
+    }
+}
+
+/*!
++ * \reimp
++ */
 void MediaCollection::addMany(const QSet<DataObject *> &objects)
 {
     foreach (DataObject* data, objects) {

=== modified file 'src/media/media-collection.h'
--- src/media/media-collection.h	2015-01-23 20:00:50 +0000
+++ src/media/media-collection.h	2015-01-26 18:48:40 +0000
@@ -48,6 +48,7 @@
     const MediaSource* mediaFromFileinfo(const QFileInfo &file) const;
     bool containsFile(const QString& filename) const;
 
+    virtual void add(DataObject* object);
     virtual void addMany(const QSet<DataObject*>& objects);
 
     void destroy(MediaSource *media, bool destroy_backing);

