Index: gtk/gtkrecentmanager.c
===================================================================
--- gtk/gtkrecentmanager.c	(revision 21788)
+++ gtk/gtkrecentmanager.c	(working copy)
@@ -503,9 +503,31 @@
   else
     {
       if (!filename || *filename == '\0')
-        priv->filename = g_build_filename (g_get_home_dir (),
-                                           GTK_RECENTLY_USED_FILE,
-                                           NULL);
+        {
+          gchar *link;
+          priv->filename = g_build_filename (g_get_home_dir (),
+                                             GTK_RECENTLY_USED_FILE,
+                                             NULL);
+
+          /* Allow users to redirect this file with a symlink. */
+          link = g_file_read_link(priv->filename, NULL);
+          if (link)
+            {
+              if (*link != '/')
+                {
+                  gchar *dirname = g_path_get_dirname(priv->filename);
+                  g_free(priv->filename);
+                  priv->filename = g_build_filename(dirname, link, NULL);
+                  g_free(link);
+                  g_free(dirname);
+                }
+              else
+                {
+                  g_free(priv->filename);
+                  priv->filename = link;
+                }
+            }
+        }
       else
         priv->filename = g_strdup (filename);
     }
