Index: visualize.cpp
===================================================================
--- visualize.cpp	(revision 12782)
+++ visualize.cpp	(working copy)
@@ -330,6 +330,7 @@
         QString curdir = QUrl(pParent->decoder()->getFilename()).dirPath();
         if (directory != curdir) {
             directory = curdir;
+            filename = pParent->decoder()->getFilename();
             return true;
         }
     }
@@ -368,13 +369,20 @@
         QImage art(getImageFilename());
         if (art.isNull())
         {
-            drawWarning(p, back, size, QObject::tr("?"));
             cursize = size;
-            return true;
+            image = QImage();
         }
-        image = art.smoothScale(size, QImage::ScaleMin);
+        else
+        {
+            image = art.smoothScale(size, QImage::ScaleMin);
+        }
     }
 
+    if (image.isNull()) {
+        drawWarning(p, back, size, QObject::tr("?"));
+        return true;
+    }
+
     // Paint the image
     p->fillRect(0, 0, size.width(), size.height(), back);
     p->drawPixmap((size.width() - image.width()) / 2,
