diff --git a/src/feh.h b/src/feh.h
index a4c01f5b6e9367d9011ddda6a7926bf9ebc616c2..a2a586ad25ca9bf43fbf14095183802648db3c92 100644
--- a/src/feh.h
+++ b/src/feh.h
@@ -162,8 +162,6 @@ void feh_reload_image(winwidget w, int resize, int force_new);
 void feh_filelist_image_remove(winwidget winwid, char do_delete);
 void feh_imlib_print_load_error(char *file, winwidget w, Imlib_Load_Error err);
 void slideshow_save_image(winwidget win);
-void ungib_imlib_save_image_with_error_return(Imlib_Image im, char *file,
-	Imlib_Load_Error * error_return);
 void feh_edit_inplace(winwidget w, int orientation);
 void feh_edit_inplace_lossless(winwidget w, int orientation);
 gib_list *feh_wrap_string(char *text, int wrap_width, Imlib_Font fn, gib_style * style);
diff --git a/src/gib_imlib.c b/src/gib_imlib.c
index b53b1cc9f7c3065f68798f4a60070aa0779d6976..8f401aac88a0e75d5f2ba6b8ec56302e03d1a4cd 100644
--- a/src/gib_imlib.c
+++ b/src/gib_imlib.c
@@ -527,13 +527,22 @@ void
 gib_imlib_save_image_with_error_return(Imlib_Image im, char *file,
                                        Imlib_Load_Error * error_return)
 {
-   char *tmp;
-
-   imlib_context_set_image(im);
-   tmp = strrchr(file, '.');
-   if (tmp)
-      imlib_image_set_format(tmp + 1);
-   imlib_save_image_with_error_return(file, error_return);
+    char *tmp;
+
+    imlib_context_set_image(im);
+    tmp = strrchr(file, '.');
+    if (tmp) {
+        char *p, *pp;
+        p = estrdup(tmp + 1);
+        pp = p;
+        while(*pp) {
+            *pp = tolower(*pp);
+            pp++;
+        }
+        imlib_image_set_format(p);
+        free(p);
+    }
+    imlib_save_image_with_error_return(file, error_return);
 }
 
 void
diff --git a/src/imlib.c b/src/imlib.c
index b3bf04b42843737c07629bcd81256bdfa4615184..10ab718a9b5ea16e0bfb58446943e483d1b359d4 100644
--- a/src/imlib.c
+++ b/src/imlib.c
@@ -148,32 +148,6 @@ int feh_load_image_char(Imlib_Image * im, char *filename)
 	return(i);
 }
 
-/*
- * XXX gib_imlib_save_image_with_error_return breaks with *.END and
- * similar because it tries to set the image format, which only works
- * with .end .
- * So we leave that part out.
- */
-void ungib_imlib_save_image_with_error_return(Imlib_Image im, char *file,
-	Imlib_Load_Error * error_return)
-{
-	char *tmp;
-	imlib_context_set_image(im);
-	tmp = strrchr(file, '.');
-	if (tmp) {
-		char *p, *pp;
-		p = estrdup(tmp + 1);
-		pp = p;
-		while(*pp) {
-			*pp = tolower(*pp);
-			pp++;
-		}
-		imlib_image_set_format(p);
-		free(p);
-	}
-	imlib_save_image_with_error_return(file, error_return);
-}
-
 void feh_imlib_print_load_error(char *file, winwidget w, Imlib_Load_Error err)
 {
 	if (err == IMLIB_LOAD_ERROR_OUT_OF_FILE_DESCRIPTORS)
@@ -1055,7 +1029,7 @@ void feh_edit_inplace(winwidget w, int op)
 			imlib_image_flip_horizontal();
 		} else
 			gib_imlib_image_orientate(old, op);
-		ungib_imlib_save_image_with_error_return(old,
+		gib_imlib_save_image_with_error_return(old,
 			FEH_FILE(w->file->data)->filename, &err);
 		gib_imlib_free_image(old);
 		if (err)
diff --git a/src/index.c b/src/index.c
index db2c9d273bdc08da7422f0451b6fec97b200c18a..a71744df37f7aa8589abd3c9e838a159fb626fdd 100644
--- a/src/index.c
+++ b/src/index.c
@@ -327,7 +327,7 @@ void init_index_mode(void)
 		else
 			strncpy(output_buf, opt.output_file, 1024);
 
-		ungib_imlib_save_image_with_error_return(im_main, output_buf, &err);
+		gib_imlib_save_image_with_error_return(im_main, output_buf, &err);
 		if (err) {
 			feh_imlib_print_load_error(output_buf, im_main, err);
 		}
diff --git a/src/slideshow.c b/src/slideshow.c
index 08db2cb87852f2dd0719bbc222ff0769da0dfcff..e42bd239b929b193b4ab8023e25afca13fb0bc4a 100644
--- a/src/slideshow.c
+++ b/src/slideshow.c
@@ -664,7 +664,7 @@ void slideshow_save_image(winwidget win)
 	if (opt.verbose)
 		fprintf(stderr, "saving image to filename '%s'\n", tmpname);
 
-	ungib_imlib_save_image_with_error_return(win->im, tmpname, &err);
+	gib_imlib_save_image_with_error_return(win->im, tmpname, &err);
 
 	if (err)
 		feh_imlib_print_load_error(tmpname, win, err);
diff --git a/src/thumbnail.c b/src/thumbnail.c
index 1719fdc05a9d8aac5631e033e3e5813b792a9bfd..c806ce4344d9f2d07c651c7877c0ba2ff3255c5e 100644
--- a/src/thumbnail.c
+++ b/src/thumbnail.c
@@ -382,7 +382,7 @@ void init_thumbnail_mode(void)
 			snprintf(output_buf, 1024, "%s/%s", opt.output_dir, opt.output_file);
 		else
 			strncpy(output_buf, opt.output_file, 1024);
-		ungib_imlib_save_image_with_error_return(td.im_main, output_buf, &err);
+		gib_imlib_save_image_with_error_return(td.im_main, output_buf, &err);
 		if (err) {
 			feh_imlib_print_load_error(output_buf, td.im_main, err);
 		}