Index: thunar-vfs/thunar-vfs-exec.c =================================================================== --- thunar-vfs/thunar-vfs-exec.c (revision 26428) +++ thunar-vfs/thunar-vfs-exec.c (working copy) @@ -324,8 +324,10 @@ if (startup_data->watch_id != 0) g_source_remove (startup_data->watch_id); - /* close the PID */ - g_spawn_close_pid (startup_data->pid); + /* make sure we don't leave zombies (see bug #2983 for details) */ + g_child_watch_add_full (G_PRIORITY_LOW, startup_data->pid, + (GChildWatchFunc) g_spawn_close_pid, + NULL, NULL); /* release the startup data */ _thunar_vfs_slice_free (TvsnStartupData, startup_data); @@ -513,7 +515,13 @@ startup_data->pid = pid; } } + else if (G_LIKELY (succeed)) + { + /* make sure we don't leave zombies (see bug #2983 for details) */ + g_child_watch_add_full (G_PRIORITY_LOW, pid, (GChildWatchFunc) g_spawn_close_pid, NULL, NULL); + } + /* release the sn display */ if (G_LIKELY (sn_display != NULL)) sn_display_unref (sn_display);