diff -Naurp xfdesktop.bak/src/xfce-desktop.c xfdesktop/src/xfce-desktop.c --- xfdesktop.bak/src/xfce-desktop.c 2008-08-28 17:54:21.000000000 +0200 +++ xfdesktop/src/xfce-desktop.c 2008-09-06 21:47:31.000000000 +0200 @@ -219,8 +219,7 @@ xfce_desktop_setup_icon_view(XfceDesktop case XFCE_DESKTOP_ICON_STYLE_FILES: { ThunarVfsPath *path; - gchar *desktop_path = xfce_get_homefile("Desktop", - NULL); + const gchar *desktop_path = xfce_get_user_special_dir(XFCE_USER_DIRECTORY_DESKTOP); path = thunar_vfs_path_new(desktop_path, NULL); if(path) { @@ -282,7 +281,6 @@ xfce_desktop_setup_icon_view(XfceDesktop g_critical("Unable to create ThunarVfsPath for '%s'", desktop_path); } - g_free(desktop_path); } break; #endif diff -Naurp xfdesktop.bak/src/xfdesktop-file-icon-manager.c xfdesktop/src/xfdesktop-file-icon-manager.c --- xfdesktop.bak/src/xfdesktop-file-icon-manager.c 2008-08-28 17:54:21.000000000 +0200 +++ xfdesktop/src/xfdesktop-file-icon-manager.c 2008-09-07 00:01:34.000000000 +0200 @@ -1560,6 +1560,7 @@ xfdesktop_file_icon_manager_populate_con GtkMenuShell *menu, gpointer user_data) { + gboolean was_templates_dir_found = TRUE; XfdesktopFileIconManager *fmanager = XFDESKTOP_FILE_ICON_MANAGER(user_data); XfdesktopFileIcon *file_icon = NULL; const ThunarVfsInfo *info = NULL; @@ -1709,11 +1710,16 @@ xfdesktop_file_icon_manager_populate_con gtk_widget_show(tmpl_menu); gtk_menu_item_set_submenu(GTK_MENU_ITEM(mi), tmpl_menu); - templates_path_str = g_build_filename(xfce_get_homedir(), + templates_path_str = xfce_get_user_special_dir(XFCE_USER_DIRECTORY_TEMPLATES); + if (G_UNLIKELY(templates_path_str == NULL)) { + templates_path_str = g_build_filename(xfce_get_homedir(), "Templates", NULL); + was_templates_dir_found = FALSE; + } templates_path = thunar_vfs_path_new(templates_path_str, NULL); - g_free(templates_path_str); + if (G_UNLIKELY(was_templates_dir_found == FALSE)) + g_free(templates_path_str); if(templates_path) { have_templates = xfdesktop_file_icon_menu_fill_template_menu(tmpl_menu, templates_path,