diff --git a/thunar/thunar-thumbnailer.c b/thunar/thunar-thumbnailer.c
index cfaf2c3d2c0ec22e1387eeadaa3208b36abc913d..5a10bf07ac733e0038e2507bc34ee8298665a588 100644
--- a/thunar/thunar-thumbnailer.c
+++ b/thunar/thunar-thumbnailer.c
@@ -346,8 +346,15 @@ thunar_thumbnailer_queue_async_reply (GObject      *proxy,
     }
   else if (error == NULL)
     {
-      /* store the handle returned by tumbler */
-      job->handle = handle;
+      if (handle == 0)
+        {
+          g_printerr ("ThunarThumbnailer: got 0 handle (Queue)\n");
+        }
+      else
+        {
+          /* store the handle returned by tumbler */
+          job->handle = handle;
+        }
     }
   else
     {
@@ -853,6 +860,12 @@ thunar_thumbnailer_thumbnailer_finished (GDBusProxy        *proxy,
   _thunar_return_if_fail (G_IS_DBUS_PROXY (proxy));
   _thunar_return_if_fail (THUNAR_IS_THUMBNAILER (thumbnailer));
 
+  if (handle == 0)
+    {
+      g_printerr ("ThunarThumbnailer: got 0 handle (Finished)\n");
+      return;
+    }
+
   _thumbnailer_lock (thumbnailer);
 
   for (lp = thumbnailer->jobs; lp != NULL; lp = lp->next)
@@ -894,6 +907,12 @@ thunar_thumbnailer_idle (ThunarThumbnailer          *thumbnailer,
   if (G_UNLIKELY (uris == NULL))
     return;
 
+  if (handle == 0)
+    {
+      g_printerr ("ThunarThumbnailer: got 0 handle (Error or Ready)\n");
+      return;
+    }
+
   _thumbnailer_lock (thumbnailer);
 
   /* look for the job so we don't emit unknown handles, the reason