diff -upr gthumb-2.10.11/src/catalog-list.c build/src/catalog-list.c
--- gthumb-2.10.11/src/catalog-list.c	2009-02-24 19:18:11.000000000 +0900
+++ build/src/catalog-list.c	2009-08-11 07:50:50.000000000 +0900
@@ -81,8 +81,9 @@ filename_cell_data_func (GtkTreeViewColu
 	} else
 		underline = PANGO_UNDERLINE_NONE;
 
+	gchar *utf8_text = g_filename_to_utf8(text, -1, NULL, NULL, NULL);
 	g_object_set (G_OBJECT (renderer),
-		      "text", text,
+		      "text", utf8_text,
 		      "underline", underline,
 		      NULL);
 
diff -upr gthumb-2.10.11/src/gth-browser.c build/src/gth-browser.c
--- gthumb-2.10.11/src/gth-browser.c	2009-02-24 19:18:11.000000000 +0900
+++ build/src/gth-browser.c	2009-08-11 09:18:27.000000000 +0900
@@ -644,7 +644,9 @@ window_update_infobar (GthBrowser *brows
 	images = gth_file_view_get_images (priv->file_list->view);
 	current = gth_file_list_pos_from_path (priv->file_list, priv->image->path) + 1;
 
-	display_name = gnome_vfs_unescape_string_for_display (file_name_from_path (priv->image->path));
+	gchar *tmp_name = gnome_vfs_unescape_string_for_display (file_name_from_path (priv->image->path));
+	gchar *utf8_name = g_filename_to_utf8 (tmp_name, -1, NULL, NULL, NULL);
+	display_name = utf8_name;
 	escaped_name = g_markup_escape_text (display_name, -1);
 
 	text = g_strdup_printf ("%d/%d - <b>%s</b> %s",
@@ -700,16 +702,23 @@ window_update_title (GthBrowser *browser
 		char *image_name;
 		int   images, current;
 
-		image_name = gnome_vfs_unescape_string_for_display (file_name_from_path (priv->image->path));
+		gchar *tmp_filename, *tmp_utf8_filename;
+		tmp_filename = g_filename_from_uri(priv->image->path, NULL, NULL);
+		tmp_utf8_filename = g_filename_from_uri(priv->image->path, NULL, NULL);
+		tmp_filename = g_filename_to_uri(tmp_utf8_filename, NULL, NULL);
+
+		image_name = gnome_vfs_unescape_string_for_display (file_name_from_path (tmp_filename));
 		images = gth_file_view_get_images (priv->file_list->view);
 		current = gth_file_list_pos_from_path (priv->file_list, priv->image->path) + 1;
 
 		if (priv->image_catalog != NULL) {
-			char *cat_name = gnome_vfs_unescape_string_for_display (file_name_from_path (priv->image_catalog));
+			tmp_filename = g_filename_from_uri(priv->image_catalog, NULL, NULL);
+			tmp_utf8_filename = g_filename_to_utf8(tmp_filename, -1, NULL, NULL, NULL);
+			tmp_filename = g_filename_to_uri(tmp_utf8_filename, NULL, NULL);
+			char *cat_name = gnome_vfs_unescape_string_for_display (file_name_from_path (tmp_filename));
 
 			/* Cut out the file extension. */
 			cat_name[strlen (cat_name) - 4] = 0;
-
 			info_txt = g_strdup_printf ("%s %s (%d/%d) - %s",
 						    image_name,
 						    modified,
diff -upr gthumb-2.10.11/src/gth-dir-list.c build/src/gth-dir-list.c
--- gthumb-2.10.11/src/gth-dir-list.c	2009-02-24 19:18:11.000000000 +0900
+++ build/src/gth-dir-list.c	2009-08-11 07:50:50.000000000 +0900
@@ -138,8 +138,9 @@ filename_cell_data_func (GtkTreeViewColu
 	} else
 		underline = PANGO_UNDERLINE_NONE;
 
+	gchar *utf8_text = g_filename_to_utf8(text, -1, NULL, NULL, NULL);
 	g_object_set (G_OBJECT (renderer),
-		      "text", text,
+		      "text", utf8_text,
 		      "underline", underline,
 		      NULL);
 
diff -upr gthumb-2.10.11/src/gth-exif-data-viewer.c build/src/gth-exif-data-viewer.c
--- gthumb-2.10.11/src/gth-exif-data-viewer.c	2009-02-24 19:18:11.000000000 +0900
+++ build/src/gth-exif-data-viewer.c	2009-08-11 07:50:50.000000000 +0900
@@ -773,8 +773,11 @@ update_file_info (GthExifDataViewer *edv
 	if (edv->priv->viewer == NULL)
 		return;
 
-	utf8_name = basename_for_display (edv->priv->file->path);
-	utf8_fullname = gnome_vfs_unescape_string_for_display (edv->priv->file->path);
+	gchar *tmp_name = g_filename_from_uri(edv->priv->file->path, NULL, NULL);
+	gchar *tmp_utf8_name = g_filename_to_utf8(tmp_name, -1, NULL, NULL, NULL);
+
+	utf8_name = basename_for_display (tmp_utf8_name);
+	utf8_fullname = gnome_vfs_unescape_string_for_display (tmp_utf8_name);
 
 	if (!image_viewer_is_void (IMAGE_VIEWER (edv->priv->viewer))) {
 		width = image_viewer_get_image_width (edv->priv->viewer);
diff -upr gthumb-2.10.11/src/gth-location.c build/src/gth-location.c
--- gthumb-2.10.11/src/gth-location.c	2009-02-24 19:18:11.000000000 +0900
+++ build/src/gth-location.c	2009-08-11 07:50:50.000000000 +0900
@@ -840,11 +840,12 @@ update_uri (GthLocation *loc,
 				uri_name = gnome_vfs_unescape_string_for_display (file_name_from_path (uri));
 		}
 
+		gchar *utf8_uri_name = g_filename_to_utf8(uri_name, -1, NULL, NULL, NULL);
 		gtk_list_store_insert (loc->priv->model, &iter, pos++);
 		gtk_list_store_set (loc->priv->model, &iter,
 				    TYPE_COLUMN, ITEM_TYPE_PARENT,
 				    ICON_COLUMN, pixbuf,
-				    NAME_COLUMN, uri_name,
+				    NAME_COLUMN, utf8_uri_name,
 				    PATH_COLUMN, uri,
 				    -1);
 		g_free (uri_name);

diff -upr gthumb-2.10.11/src/main.c build/src/main.c
--- gthumb-2.10.11/src/main.c	2009-02-24 19:18:11.000000000 +0900
+++ build/src/main.c	2009-08-11 07:50:50.000000000 +0900
@@ -101,7 +101,8 @@ static const GOptionEntry options[] = {
 	  N_("Use the viewer mode to view single images"),
 	  0 },
 
-	{ G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_STRING_ARRAY, &remaining_args,
+	//	{ G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_STRING_ARRAY, &remaining_args,
+	{ G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &remaining_args,
 	  NULL,
 	  NULL },
 
diff -upr gthumb-2.10.11/libgthumb/gth-file-view-list.c build/libgthumb/gth-file-view-list.c
--- gthumb-2.10.11/libgthumb/gth-file-view-list.c	2009-02-24 19:18:16.000000000 +0900
+++ build/libgthumb/gth-file-view-list.c	2009-08-11 07:50:50.000000000 +0900
@@ -225,11 +225,13 @@ gfv_insert (GthFileView  *file_view,
 
 	real_pixbuf = get_sized_pixbuf (gfv_list, pixbuf);
 
+	gchar *utf8_text = g_filename_to_utf8(text, -1, NULL, NULL, NULL); 
+	gchar *utf8_comment = g_locale_to_utf8(text, -1, NULL, NULL, NULL); 
 	gtk_list_store_insert (list_store, &iter, pos);
 	gtk_list_store_set (list_store, &iter,
 			    COLUMN_ICON, real_pixbuf,
-			    COLUMN_NAME, text,
-			    COLUMN_COMMENT, comment,
+			    COLUMN_NAME, utf8_text,
+			    COLUMN_COMMENT, utf8_comment,
 			    -1);
 
 	if (real_pixbuf != NULL)
@@ -254,11 +256,13 @@ gfv_append (GthFileView  *file_view,
 
 	real_pixbuf = get_sized_pixbuf (gfv_list, pixbuf);
 
+	gchar *utf8_text = g_filename_to_utf8(text, -1, NULL, NULL, NULL);
+	gchar *utf8_comment = g_locale_to_utf8(text, -1, NULL, NULL, NULL); 
 	gtk_list_store_append (list_store, &iter);
 	gtk_list_store_set (list_store, &iter,
 			    COLUMN_ICON, real_pixbuf,
-			    COLUMN_NAME, text,
-			    COLUMN_COMMENT, comment,
+			    COLUMN_NAME, utf8_text,
+			    COLUMN_COMMENT, utf8_comment,
 			    -1);
 
 	if (real_pixbuf != NULL)
@@ -290,11 +294,13 @@ gfv_append_with_data (GthFileView  *file
 
 	real_pixbuf = get_sized_pixbuf (gfv_list, pixbuf);
 
+	gchar *utf8_text = g_filename_to_utf8(text, -1, NULL, NULL, NULL);
+	gchar *utf8_comment = g_locale_to_utf8(text, -1, NULL, NULL, NULL); 
 	gtk_list_store_append (list_store, &iter);
 	gtk_list_store_set (list_store, &iter,
 			    COLUMN_ICON, real_pixbuf,
-			    COLUMN_NAME, text,
-			    COLUMN_COMMENT, comment,
+			    COLUMN_NAME, utf8_text,
+			    COLUMN_COMMENT, utf8_comment,
 			    COLUMN_FILE_DATA, data,
 			    -1);
 
diff -upr gthumb-2.10.11/libgthumb/gth-file-view-thumbs.c build/libgthumb/gth-file-view-thumbs.c
--- gthumb-2.10.11/libgthumb/gth-file-view-thumbs.c	2009-02-24 19:18:16.000000000 +0900
+++ build/libgthumb/gth-file-view-thumbs.c	2009-08-11 08:04:08.000000000 +0900
@@ -138,8 +138,10 @@ gfv_insert (GthFileView  *file_view,
 	GthImageList      *ilist = gfv_thumbs->priv->ilist;
 
 	g_return_if_fail (pixbuf != NULL);
+	gchar *utf8_text = g_filename_to_utf8(text, -1, NULL, NULL, NULL);
+	gchar *utf8_comment = g_locale_to_utf8(comment, -1, NULL, NULL, NULL);
 
-	gth_image_list_insert (ilist, pos, pixbuf, text, comment);
+	gth_image_list_insert (ilist, pos, pixbuf, utf8_text, utf8_comment);
 }
 
 
@@ -153,8 +155,10 @@ gfv_append (GthFileView  *file_view,
 	GthImageList      *ilist = gfv_thumbs->priv->ilist;
 
 	g_return_val_if_fail (pixbuf != NULL, -1);
+	gchar *utf8_text = g_filename_to_utf8(text, -1, NULL, NULL, NULL);
+	gchar *utf8_comment = g_locale_to_utf8(comment, -1, NULL, NULL, NULL);
 
-	return 	gth_image_list_append (ilist, pixbuf, text, comment);
+	return 	gth_image_list_append (ilist, pixbuf, utf8_text, utf8_comment);
 }
 
 
@@ -169,8 +173,10 @@ gfv_append_with_data (GthFileView  *file
 	GthImageList      *ilist = gfv_thumbs->priv->ilist;
 
 	g_return_val_if_fail (pixbuf != NULL, -1);
+	gchar *utf8_text = g_filename_to_utf8(text, -1, NULL, NULL, NULL);
+	gchar *utf8_comment = g_locale_to_utf8(comment, -1, NULL, NULL, NULL);
 
-	return 	gth_image_list_append_with_data (ilist, pixbuf, text, comment, data);
+	return 	gth_image_list_append_with_data (ilist, pixbuf, utf8_text, utf8_comment, data);
 }
 
 
@@ -214,8 +220,9 @@ gfv_set_image_text (GthFileView  *file_v
 {
 	GthFileViewThumbs *gfv_thumbs = (GthFileViewThumbs *) file_view;
 	GthImageList      *ilist = gfv_thumbs->priv->ilist;
+	gchar *utf8_text = g_filename_to_utf8(text, -1, NULL, NULL, NULL);
 
-	gth_image_list_set_image_text (ilist, pos, text);
+	gth_image_list_set_image_text (ilist, pos, utf8_text);
 }
 
 
@@ -237,8 +244,9 @@ gfv_set_image_comment (GthFileView  *fil
 {
 	GthFileViewThumbs *gfv_thumbs = (GthFileViewThumbs *) file_view;
 	GthImageList      *ilist = gfv_thumbs->priv->ilist;
+	gchar *utf8_comment = g_locale_to_utf8(comment, -1, NULL, NULL, NULL);
 
-	gth_image_list_set_image_comment (ilist, pos, comment);
+	gth_image_list_set_image_comment (ilist, pos, utf8_comment);
 }
 
 
@@ -757,8 +765,9 @@ gfv_set_no_image_text (GthFileView *file
 {
 	GthFileViewThumbs *gfv_thumbs = (GthFileViewThumbs *) file_view;
 	GthImageList      *ilist = gfv_thumbs->priv->ilist;
+	gchar *utf8_text = g_filename_to_utf8(text, -1, NULL, NULL, NULL);
 
-	gth_image_list_set_no_image_text (ilist, text);
+	gth_image_list_set_no_image_text (ilist, utf8_text);
 }
 

