--- thunar.orig/thunar-file.c 2015-05-22 23:25:36.000000000 +1000 +++ thunar/thunar-file.c 2016-03-28 21:16:03.589839275 +1100 @@ -3939,6 +3939,24 @@ /** + * thunar_file_reload_deferred: + * @file : a #ThunarFile instance. + * + * Calls thunar_file_reload then decrements the refcount that + * thunar_file_reload_idle incremented. + * + **/ +gboolean +thunar_file_reload_deferred (ThunarFile *file) +{ + gboolean ret = thunar_file_reload (file); + g_object_unref (G_OBJECT (file)); + return ret; +} + + + +/** * thunar_file_reload_idle: * @file : a #ThunarFile instance. * @@ -3951,7 +3969,11 @@ { _thunar_return_if_fail (THUNAR_IS_FILE (file)); - g_idle_add ((GSourceFunc) thunar_file_reload, file); + /* Increment the refcount so the file isn't freed before the deferred reload + * runs. + */ + g_object_ref (G_OBJECT (file)); + g_idle_add ((GSourceFunc) thunar_file_reload_deferred, file); }