--- gdesktopappinfo.c.orig	2015-01-28 10:03:18.035792701 +0100
+++ gdesktopappinfo.c	2015-01-28 10:18:36.611777147 +0100
@@ -2469,36 +2469,45 @@
 
   term_argc = 2;
   term_argv = g_new0 (char *, 3);
-
-  check = g_find_program_in_path ("gnome-terminal");
+  check = g_find_program_in_path ("x-terminal-emulator");
   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");
+      /* Note that if using x-terminal-emulator and gnome-terminal 
+       * the gnome-teminal-wrapper takes care of -e brokeness*/
+      term_argv[1] = g_strdup ("-e");
     }
   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)
+      check = g_find_program_in_path ("gnome-terminal");
+      if (check != NULL)
         {
-          check = g_strdup ("xterm");
-          g_warning ("couldn't find a terminal, falling back to xterm");
+          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)
+            {
+              check = g_strdup ("xterm");
+              g_warning ("couldn't find a terminal, falling back to xterm");
+            }
+          term_argv[0] = check;
+          term_argv[1] = g_strdup ("-e");
         }
-      term_argv[0] = check;
-      term_argv[1] = g_strdup ("-e");
     }
-
   real_argc = term_argc + *argc;
   real_argv = g_new (char *, real_argc + 1);
 
