diff -Nur control-center-2.11.6.orig/capplets/background/gnome-wp-info.c control-center-2.11.6/capplets/background/gnome-wp-info.c
--- control-center-2.11.6.orig/capplets/background/gnome-wp-info.c	2005-07-10 17:58:14.000000000 +0200
+++ control-center-2.11.6/capplets/background/gnome-wp-info.c	2005-07-14 00:39:42.000000000 +0200
@@ -65,13 +65,35 @@
 
     new->uri = g_strdup (uri);
 
+    /* If one have a symlink, resolv it */
+    if (info->flags & GNOME_VFS_FILE_FLAGS_SYMLINK) {
+      do {
+	if (new->symlink_name)
+	  g_free(new->symlink_name);
+	new->symlink_name = g_strdup (info->symlink_name);
+	gnome_vfs_file_info_unref (info);
+	info = gnome_vfs_file_info_new ();
+	
+	result = gnome_vfs_get_file_info (gnome_vfs_escape_path_string (new->symlink_name), info,
+					  GNOME_VFS_FILE_INFO_DEFAULT |
+					  GNOME_VFS_FILE_INFO_GET_MIME_TYPE |
+					  GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
+	
+	if (info == NULL || info->mime_type == NULL || result != GNOME_VFS_OK) {
+	  if (info)
+	    gnome_vfs_file_info_unref (info);
+	  return NULL;
+	}
+      } while (info->flags & GNOME_VFS_FILE_FLAGS_SYMLINK);
+    }
+
     new->thumburi = gnome_thumbnail_factory_lookup (thumbs,
-						    escaped_path,
+						    new->symlink_name ? gnome_vfs_escape_path_string (new->symlink_name) : escaped_path,
 						    info->mtime);
     if (new->thumburi == NULL) {
       new->thumburi = g_strconcat (g_get_home_dir (),
 				   "/.thumbnails/normal/",
-				   escaped_path,
+				   gnome_thumbnail_md5 (new->symlink_name ? gnome_vfs_escape_path_string (new->symlink_name) : escaped_path),
 				   ".png",
 				   NULL);
     }
@@ -93,6 +115,7 @@
   new = g_new0 (GnomeWPInfo, 1);
 
   new->uri = g_strdup (info->uri);
+  new->symlink_name = g_strdup(info->symlink_name);
   new->thumburi = g_strdup (info->uri);
 
   new->name = g_strdup (info->name);
@@ -110,6 +133,7 @@
   }
 
   g_free (info->uri);
+  g_free (info->symlink_name);
   g_free (info->thumburi);
   g_free (info->name);
   g_free (info->mime_type);
diff -Nur control-center-2.11.6.orig/capplets/background/gnome-wp-info.h control-center-2.11.6/capplets/background/gnome-wp-info.h
--- control-center-2.11.6.orig/capplets/background/gnome-wp-info.h	2005-02-26 20:15:58.000000000 +0100
+++ control-center-2.11.6/capplets/background/gnome-wp-info.h	2005-07-14 00:40:10.000000000 +0200
@@ -29,6 +29,7 @@
 
 struct _GnomeWPInfo {
   gchar * uri;
+  gchar * symlink_name;
   gchar * thumburi;
   gchar * name;
   gchar * mime_type;
diff -Nur control-center-2.11.6.orig/capplets/background/gnome-wp-item.c control-center-2.11.6/capplets/background/gnome-wp-item.c
--- control-center-2.11.6.orig/capplets/background/gnome-wp-item.c	2005-07-10 17:58:14.000000000 +0200
+++ control-center-2.11.6/capplets/background/gnome-wp-item.c	2005-07-14 00:45:57.000000000 +0200
@@ -205,17 +205,36 @@
   } else if (!strcmp (item->filename, "(none)")) {
     return bgpixbuf;
   } else {
-    gchar * escaped_path;
+    if (item->fileinfo->symlink_name) {
+      gchar * escaped_path;
 
-    escaped_path = gnome_vfs_escape_path_string (item->filename);
+      escaped_path = gnome_vfs_escape_path_string (item->fileinfo->symlink_name);
+      
+      pixbuf = gnome_thumbnail_factory_generate_thumbnail (thumbs,
+							   escaped_path,
+							   item->fileinfo->mime_type);
+
+      gnome_thumbnail_factory_save_thumbnail (thumbs, pixbuf,
+					      escaped_path,
+					      item->fileinfo->mtime);
+      
+      g_free (escaped_path);
+    }
+    else {   
+      gchar * escaped_path;
 
-    pixbuf = gnome_thumbnail_factory_generate_thumbnail (thumbs,
-							 escaped_path,
-							 item->fileinfo->mime_type);
-    gnome_thumbnail_factory_save_thumbnail (thumbs, pixbuf,
-					    escaped_path,
-					    item->fileinfo->mtime);
-    g_free (escaped_path);
+      escaped_path = gnome_vfs_escape_path_string (item->filename);
+      
+      pixbuf = gnome_thumbnail_factory_generate_thumbnail (thumbs,
+							   escaped_path,
+							   item->fileinfo->mime_type);
+
+      gnome_thumbnail_factory_save_thumbnail (thumbs, pixbuf,
+					      escaped_path,
+					      item->fileinfo->mtime);
+      
+      g_free (escaped_path);
+    }
   }
 
   if (pixbuf != NULL) {
