diff -Naur nautilus-3.6.1.orig/eel/eel-gnome-extensions.c nautilus-3.6.1/eel/eel-gnome-extensions.c
--- nautilus-3.6.1.orig/eel/eel-gnome-extensions.c	2013-06-24 15:48:18.490246931 -0700
+++ nautilus-3.6.1/eel/eel-gnome-extensions.c	2013-06-24 16:19:53.829949278 -0700
@@ -31,7 +31,6 @@
 #include "eel-gnome-extensions.h"
 
 #include <gtk/gtk.h>
-#include <libgnome-desktop/gnome-desktop-utils.h>
 
 /* Return a command string containing the path to a terminal on this system. */
 
@@ -89,6 +88,137 @@
 	return result;
 }
 
+
+/**
+ * gnome_desktop_prepend_terminal_to_vector:
+ * @argc: a pointer to the vector size
+ * @argv: a pointer to the vector
+ *
+ * Description:  Prepends a terminal (either the one configured as default in
+ * the user's GNOME setup, or one of the common xterm emulators) to the passed
+ * in vector, modifying it in the process.  The vector should be allocated with
+ * #g_malloc, as this will #g_free the original vector.  Also all elements must
+ * have been allocated separately.  That is the standard glib/GNOME way of
+ * doing vectors however.  If the integer that @argc points to is negative, the
+ * size will first be computed.  Also note that passing in pointers to a vector
+ * that is empty, will just create a new vector for you.
+ **/
+static void
+gnome_desktop_prepend_terminal_to_vector (int *argc, char ***argv)
+{
+#ifndef G_OS_WIN32
+        char **real_argv;
+        int real_argc;
+        int i, j;
+        char **term_argv = NULL;
+        int term_argc = 0;
+        GSettings *settings;
+
+        gchar *terminal = NULL;
+
+        char **the_argv;
+
+        g_return_if_fail (argc != NULL);
+        g_return_if_fail (argv != NULL);
+
+        // _gnome_desktop_init_i18n ();
+
+        /* sanity */
+        if(*argv == NULL)
+                *argc = 0;
+
+        the_argv = *argv;
+
+        /* compute size if not given */
+        if (*argc < 0) {
+                for (i = 0; the_argv[i] != NULL; i++)
+                        ;
+                *argc = i;
+        }
+
+        settings = g_settings_new ("org.gnome.desktop.default-applications.terminal");
+        terminal = g_settings_get_string (settings, "exec");
+
+        if (terminal) {
+                gchar *command_line;
+                gchar *exec_flag;
+
+                exec_flag = g_settings_get_string (settings, "exec-arg");
+
+                if (exec_flag == NULL)
+                        command_line = g_strdup (terminal);
+                else
+                        command_line = g_strdup_printf ("%s %s", terminal,
+                                                        exec_flag);
+
+                g_shell_parse_argv (command_line,
+                                    &term_argc,
+                                    &term_argv,
+                                    NULL /* error */);
+
+                g_free (command_line);
+                g_free (exec_flag);
+                g_free (terminal);
+        }
+
+        g_object_unref (settings);
+
+        if (term_argv == NULL) {
+                char *check;
+
+                term_argc = 2;
+                term_argv = g_new0 (char *, 3);
+
+                check = g_find_program_in_path ("gnome-terminal");
+                if (check != NULL) {
+                        term_argv[0] = check;
+                        /* Note that gnome-terminal takes -x and
+                         * as -e in gnome-terminal is broken we use that. */
+                        term_argv[1] = g_strdup ("-x");
+                } else {
+                        if (check == NULL)
+                                check = g_find_program_in_path ("nxterm");
+                        if (check == NULL)
+                                check = g_find_program_in_path ("color-xterm");
+                        if (check == NULL)
+                                check = g_find_program_in_path ("rxvt");
+                        if (check == NULL)
+                                check = g_find_program_in_path ("xterm");
+                        if (check == NULL)
+                                check = g_find_program_in_path ("dtterm");
+                        if (check == NULL) {
+                                g_warning ("Cannot find a terminal, using xterm, even if it may not work");
+                                check = g_strdup ("xterm");
+                        }
+                        term_argv[0] = check;
+                        term_argv[1] = g_strdup ("-e");
+                }
+        }
+        real_argc = term_argc + *argc;
+        real_argv = g_new (char *, real_argc + 1);
+
+        for (i = 0; i < term_argc; i++)
+                real_argv[i] = term_argv[i];
+
+        for (j = 0; j < *argc; j++, i++)
+                real_argv[i] = (char *)the_argv[j];
+
+        real_argv[i] = NULL;
+
+        g_free (*argv);
+        *argv = real_argv;
+        *argc = real_argc;
+
+        /* we use g_free here as we sucked all the inner strings
+         * out from it into real_argv */
+        g_free (term_argv);
+#else
+        /* FIXME: Implement when needed */
+        g_warning ("gnome_prepend_terminal_to_vector: Not implemented");
+#endif
+}
+
+
 static char *
 get_terminal_command_prefix (gboolean for_command)
 {
@@ -198,3 +328,5 @@
 
 	g_free (command_line);
 }
+
+
