diff --git a/thunar/thunar-file.c b/thunar/thunar-file.c
index 3187c8594bfaa04785dcf81f150d5fc9c3fd2d4b..0dd11cd5808f8d6fb3e588575048268853b547e1 100644
--- a/thunar/thunar-file.c
+++ b/thunar/thunar-file.c
@@ -66,6 +66,7 @@
 #include <thunar/thunar-user.h>
 #include <thunar/thunar-util.h>
 #include <thunar/thunar-dialogs.h>
+#include <thunar/thunar-icon-factory.h>
 
 
 
@@ -3456,6 +3457,9 @@ thunar_file_reload (ThunarFile *file)
 {
   _thunar_return_if_fail (THUNAR_IS_FILE (file));
 
+  /* clear file pxmap cache */
+  thunar_icon_factory_clear_pixmap_cache (file);
+
   if (!thunar_file_load (file, NULL, NULL))
     {
       /* destroy the file if we cannot query any file information */
diff --git a/thunar/thunar-icon-factory.c b/thunar/thunar-icon-factory.c
index 2f66ce9fb8b41280414d393f7bce0c83b96d2b81..2826e228e578bfe542985b2e649259514949436d 100644
--- a/thunar/thunar-icon-factory.c
+++ b/thunar/thunar-icon-factory.c
@@ -879,5 +879,6 @@ thunar_icon_factory_clear_pixmap_cache (ThunarFile *file)
   _thunar_return_if_fail (THUNAR_IS_FILE (file));
 
   /* unset the data */
-  g_object_set_qdata (G_OBJECT (file), thunar_icon_factory_store_quark, NULL);
+  if (thunar_icon_factory_store_quark != 0)
+    g_object_set_qdata (G_OBJECT (file), thunar_icon_factory_store_quark, NULL);
 }