+--- ./src/slideshow.c.org 2011-09-02 12:55:22.245365638 +0200
++++ ./src/slideshow.c 2011-09-02 12:55:29.089016324 +0200
+@@ -96,6 +96,11 @@ void cb_reload_timer(void *data)
+
+ /* save the current filename for refinding it in new list */
+ current_filename = estrdup(FEH_FILE(current_file->data)->filename);
++
++ for (l = filelist; l; l = l->next) {
++ feh_file_free(l->data);
++ l->data = NULL;
++ }
+ gib_list_free_and_data(filelist);
+ filelist = NULL;
+ filelist_len = 0;
+@@ -109,8 +114,7 @@ void cb_reload_timer(void *data)
+ add_file_to_filelist_recursively(".", FILELIST_FIRST);
+
+ if (!(filelist_len = gib_list_length(filelist))) {
+- fprintf(stderr, "No files found to reload.\n");
+- exit(1);
++ eprintf("No files found to reload.");
+ }
+
+ /* find the previously current file */
+@@ -149,6 +153,7 @@ void feh_reload_image(winwidget w, int r
+
+ if (!w->file) {
+ im_weprintf(w, "couldn't reload, this image has no file associated with it.");
++ winwidget_render_image(w, 0, 0);
+ return;
+ }
+
+@@ -166,20 +171,17 @@ void feh_reload_image(winwidget w, int r
+ old_w = gib_imlib_image_get_width(w->im);
+ old_h = gib_imlib_image_get_height(w->im);
+
+- /* force imlib2 not to cache */
+- winwidget_free_image(w);
+-
+ /* if the image has changed in dimensions - we gotta resize */
+ if ((feh_load_image(&tmp, FEH_FILE(w->file->data))) == 0) {
+ if (force_new) {
+ eprintf("failed to reload image\n");
+ } else {
+ im_weprintf(w, "Couldn't reload image. Is it still there?");
++ winwidget_render_image(w, 0, 0);
+ }
+ winwidget_rename(w, title);
+ free(title);
+ free(new_title);
+- filelist = feh_file_remove_from_list(filelist, w->file);
+ return;
+ }
+
+@@ -187,6 +189,9 @@ void feh_reload_image(winwidget w, int r
+ (old_h != gib_imlib_image_get_height(tmp))))
+ resize = 1;
+
++ /* force imlib2 not to cache */
++ winwidget_free_image(w);
++
+ w->im = tmp;
+ winwidget_reset_image(w);
+