Index: xfce-exec.c =================================================================== --- xfce-exec.c (revision 26207) +++ xfce-exec.c (revision 26290) @@ -122,19 +122,37 @@ if (async) { + gchar **cur = NULL; + spawn_flags = G_SPAWN_SEARCH_PATH; if (want_child_watch) { spawn_flags |= G_SPAWN_DO_NOT_REAP_CHILD; } - + + if (!free_envp) + free_envp = g_strdupv (envp); + + for (cur = free_envp; *cur; cur++) + { + if ((strlen (*cur) > 7) && (g_strncasecmp ("DISPLAY", *cur, 7) == 0)) + { + gchar *dpyname = gdk_screen_make_display_name (screen); + + g_free (*cur); + *cur = g_strconcat ("DISPLAY=", dpyname, NULL); + + g_free (dpyname); + } + } + success = gdk_spawn_on_screen (screen, NULL, argv, - free_envp ? free_envp : envp, - spawn_flags, - child_setup_async, NULL, &pid, - error); + free_envp, + spawn_flags, + child_setup_async, NULL, &pid, + error); } else {