diff --git a/thunar/thunar-launcher.c b/thunar/thunar-launcher.c
index 56295c3dde5bab869f661f503040e25449e8cfe2..4fe76de9efba916c833513b2280ee30d6a0d4736 100644
--- a/thunar/thunar-launcher.c
+++ b/thunar/thunar-launcher.c
@@ -198,7 +198,7 @@ struct _ThunarLauncher
   gint                    n_executables_to_process;
   gint                    n_regulars_to_process;
   gboolean                files_to_process_trashable;
-  gboolean                current_directory_selected;
+  gboolean                files_are_selected;
   gboolean                single_directory_to_process;
 
   ThunarFile             *single_folder;
@@ -505,9 +505,7 @@ thunar_launcher_set_selected_files (ThunarComponent *component,
 
   /* disconnect from the previous files to process */
   thunar_g_file_list_free (launcher->files_to_process);
-
-  /* connect to the new selected files list */
-  launcher->files_to_process = thunar_g_file_list_copy (selected_files);
+  launcher->files_to_process = NULL;
 
   /* notify listeners */
   g_object_notify_by_pspec (G_OBJECT (launcher), launcher_props[PROP_SELECTED_FILES]);
@@ -519,16 +517,16 @@ thunar_launcher_set_selected_files (ThunarComponent *component,
       launcher->parent_folder = NULL;
     }
 
-  /* if nothing is selected, the current directory is considered to be the selection */
-  if (selected_files == NULL || g_list_length (selected_files) == 0)
-    {
-      if (launcher->current_directory != NULL)
-        launcher->files_to_process = g_list_append (launcher->files_to_process, launcher->current_directory);
-    }
+  launcher->files_are_selected = TRUE;
+  if ((selected_files == NULL || g_list_length (selected_files) == 0))
+    launcher->files_are_selected = FALSE;
+
+  /* if nothing is selected, the current directory is the folder to use for all menus */
+  if (launcher->files_are_selected)
+    launcher->files_to_process = thunar_g_file_list_copy (selected_files);
   else
-    {
-      launcher->files_to_process = thunar_g_file_list_copy (selected_files);
-    }
+    launcher->files_to_process = g_list_append (launcher->files_to_process, launcher->current_directory);
+
 
   launcher->files_to_process_trashable    = TRUE;
   launcher->n_files_to_process       = 0;
@@ -536,6 +534,10 @@ thunar_launcher_set_selected_files (ThunarComponent *component,
   launcher->n_executables_to_process = 0;
   launcher->n_regulars_to_process    = 0;
 
+  /* That happens at startup for some reason */
+  if (launcher->current_directory == NULL)
+    return;
+
   /* determine the number of files/directories/executables */
   for (lp = launcher->files_to_process; lp != NULL; lp = lp->next, ++launcher->n_files_to_process)
     {
@@ -560,28 +562,19 @@ thunar_launcher_set_selected_files (ThunarComponent *component,
     }
 
   launcher->single_directory_to_process = (launcher->n_directories_to_process == 1 && launcher->n_files_to_process == 1);
+  launcher->single_folder = NULL;
   if (launcher->single_directory_to_process)
     {
       /* grab the folder of the first selected item */
       launcher->single_folder = THUNAR_FILE (launcher->files_to_process->data);
-      if (launcher->current_directory != NULL)
-        launcher->current_directory_selected = g_file_equal (thunar_file_get_file (THUNAR_FILE (launcher->files_to_process->data)), thunar_file_get_file (launcher->current_directory));
-    }
-  else
-    {
-      launcher->single_folder = NULL;
-      launcher->current_directory_selected = FALSE;
     }
 
+  launcher->parent_folder = NULL;
   if (launcher->files_to_process != NULL)
     {
       /* just grab the folder of the first selected item */
       launcher->parent_folder = thunar_file_get_parent (THUNAR_FILE (launcher->files_to_process->data), NULL);
     }
-  else
-    {
-      launcher->parent_folder = NULL;
-    }
 }
 
 
@@ -1265,8 +1258,7 @@ thunar_launcher_append_menu_item (ThunarLauncher       *launcher,
                                        action_entry->accel_path, action_entry->callback, G_OBJECT (launcher), menu);
 
       case THUNAR_LAUNCHER_ACTION_SENDTO_MENU:
-        show_item = launcher->current_directory_selected == FALSE;
-        if (!show_item && !force)
+        if (launcher->files_are_selected == FALSE)
           return NULL;
         item = xfce_gtk_menu_item_new_from_action_entry (action_entry, G_OBJECT (launcher), GTK_MENU_SHELL (menu));
         submenu = thunar_launcher_build_sendto_submenu (launcher);
@@ -1275,8 +1267,8 @@ thunar_launcher_append_menu_item (ThunarLauncher       *launcher,
 
       case THUNAR_LAUNCHER_ACTION_MAKE_LINK:
         show_item = thunar_file_is_writable (launcher->current_directory) &&
-                    launcher->current_directory_selected == FALSE &&
-                    thunar_file_is_trashed (launcher->current_directory) == FALSE;;
+                    launcher->files_are_selected &&
+                    thunar_file_is_trashed (launcher->current_directory) == FALSE;
         if (!show_item && !force)
           return NULL;
 
@@ -1290,7 +1282,7 @@ thunar_launcher_append_menu_item (ThunarLauncher       *launcher,
 
       case THUNAR_LAUNCHER_ACTION_DUPLICATE:
         show_item = thunar_file_is_writable (launcher->current_directory) &&
-                    launcher->current_directory_selected == FALSE &&
+                    launcher->files_are_selected &&
                     thunar_file_is_trashed (launcher->current_directory) == FALSE;
         if (!show_item && !force)
           return NULL;
@@ -1301,7 +1293,7 @@ thunar_launcher_append_menu_item (ThunarLauncher       *launcher,
 
       case THUNAR_LAUNCHER_ACTION_RENAME:
         show_item = thunar_file_is_writable (launcher->current_directory) &&
-                    launcher->current_directory_selected == FALSE &&
+                    launcher->files_are_selected &&
                     thunar_file_is_trashed (launcher->current_directory) == FALSE;
         if (!show_item && !force)
           return NULL;
@@ -1313,7 +1305,7 @@ thunar_launcher_append_menu_item (ThunarLauncher       *launcher,
         return item;
 
       case THUNAR_LAUNCHER_ACTION_RESTORE:
-        if (launcher->current_directory_selected == FALSE && thunar_file_is_trashed (launcher->current_directory))
+        if (launcher->files_are_selected && thunar_file_is_trashed (launcher->current_directory))
           {
             tooltip_text = ngettext ("Restore the selected file to its original location",
                                      "Restore the selected files to its original location", launcher->n_files_to_process);
@@ -1329,7 +1321,7 @@ thunar_launcher_append_menu_item (ThunarLauncher       *launcher,
           return NULL;
 
         show_item = launcher->parent_folder != NULL &&
-                      !launcher->current_directory_selected;
+                    launcher->files_are_selected;
         if (!show_item && !force)
           return NULL;
 
@@ -1347,7 +1339,7 @@ thunar_launcher_append_menu_item (ThunarLauncher       *launcher,
           return NULL;
 
         show_item = launcher->parent_folder != NULL &&
-                      !launcher->current_directory_selected;
+                    launcher->files_are_selected;
         if (!show_item && !force)
           return NULL;
 
@@ -1399,7 +1391,7 @@ thunar_launcher_append_menu_item (ThunarLauncher       *launcher,
           }
         else
           {
-            show_item = launcher->current_directory_selected == FALSE &&
+            show_item = launcher->files_are_selected &&
                           launcher->parent_folder != NULL;
             if (!show_item && !force)
               return NULL;
@@ -1424,7 +1416,7 @@ thunar_launcher_append_menu_item (ThunarLauncher       *launcher,
           }
         else
           {
-            show_item = launcher->current_directory_selected == FALSE;
+            show_item = launcher->files_are_selected;
             if (!show_item && !force)
               return NULL;
             tooltip_text = ngettext ("Prepare the selected file to be copied with a Paste command",
@@ -1457,7 +1449,7 @@ thunar_launcher_append_menu_item (ThunarLauncher       *launcher,
           }
         else
           {
-            if (launcher->single_directory_to_process && !launcher->current_directory_selected)
+            if (launcher->single_directory_to_process && launcher->files_are_selected)
                 return thunar_launcher_append_menu_item (launcher, menu, THUNAR_LAUNCHER_ACTION_PASTE_INTO_FOLDER, force);
             clipboard = thunar_clipboard_manager_get_for_display (gtk_widget_get_display (launcher->widget));
             item = xfce_gtk_menu_item_new_from_action_entry (action_entry, G_OBJECT (launcher), GTK_MENU_SHELL (menu));
@@ -1810,7 +1802,7 @@ thunar_launcher_action_make_link (ThunarLauncher *launcher)
 
   if (G_UNLIKELY (launcher->current_directory == NULL))
     return;
-  if (launcher->current_directory_selected == TRUE || thunar_file_is_trashed (launcher->current_directory))
+  if (launcher->files_are_selected == FALSE || thunar_file_is_trashed (launcher->current_directory))
     return;
 
   for (lp = launcher->files_to_process; lp != NULL; lp = lp->next)
@@ -1839,7 +1831,7 @@ thunar_launcher_action_duplicate (ThunarLauncher *launcher)
 
   if (G_UNLIKELY (launcher->current_directory == NULL))
     return;
-  if (launcher->current_directory_selected == TRUE || thunar_file_is_trashed (launcher->current_directory))
+  if (launcher->files_are_selected == FALSE || thunar_file_is_trashed (launcher->current_directory))
     return;
 
   /* determine the selected files for the view */
@@ -1904,7 +1896,7 @@ thunar_launcher_append_custom_actions (ThunarLauncher *launcher,
   /* load the menu items offered by the menu providers */
   for (lp_provider = providers; lp_provider != NULL; lp_provider = lp_provider->next)
     {
-      if (launcher->single_directory_to_process && launcher->current_directory_selected)
+      if (launcher->files_are_selected == FALSE)
         thunarx_menu_items = thunarx_menu_provider_get_folder_menu_items (lp_provider->data, window, THUNARX_FILE_INFO (launcher->current_directory));
       else
         thunarx_menu_items = thunarx_menu_provider_get_file_menu_items (lp_provider->data, window, launcher->files_to_process);
@@ -1953,8 +1945,8 @@ thunar_launcher_check_uca_key_activation (ThunarLauncher *launcher,
   /* load the menu items offered by the menu providers */
   for (lp_provider = providers; lp_provider != NULL; lp_provider = lp_provider->next)
     {
-      if (launcher->single_directory_to_process)
-        thunarx_menu_items = thunarx_menu_provider_get_folder_menu_items (lp_provider->data, window, THUNARX_FILE_INFO (launcher->single_folder));
+      if (launcher->files_are_selected == FALSE)
+        thunarx_menu_items = thunarx_menu_provider_get_folder_menu_items (lp_provider->data, window, THUNARX_FILE_INFO (launcher->current_directory));
       else
         thunarx_menu_items = thunarx_menu_provider_get_file_menu_items (lp_provider->data, window, launcher->files_to_process);
       for (lp_item = thunarx_menu_items; lp_item != NULL; lp_item = lp_item->next)
@@ -2029,7 +2021,7 @@ thunar_launcher_action_rename (ThunarLauncher *launcher)
 
   if (launcher->files_to_process == NULL || g_list_length (launcher->files_to_process) == 0)
     return;
-  if (launcher->current_directory_selected == TRUE || thunar_file_is_trashed (launcher->current_directory))
+  if (launcher->files_are_selected == FALSE || thunar_file_is_trashed (launcher->current_directory))
     return;
 
   /* get the window */
@@ -2062,7 +2054,7 @@ thunar_launcher_action_restore (ThunarLauncher *launcher)
 
   _thunar_return_if_fail (THUNAR_IS_LAUNCHER (launcher));
 
-  if (launcher->current_directory_selected == TRUE || !thunar_file_is_trashed (launcher->current_directory))
+  if (launcher->files_are_selected == FALSE || !thunar_file_is_trashed (launcher->current_directory))
     return;
 
   /* restore the selected files */
@@ -2079,7 +2071,7 @@ thunar_launcher_action_move_to_trash (ThunarLauncher *launcher)
 
   _thunar_return_if_fail (THUNAR_IS_LAUNCHER (launcher));
 
-  if (launcher->parent_folder == NULL || launcher->current_directory_selected)
+  if (launcher->parent_folder == NULL || launcher->files_are_selected == FALSE)
     return;
 
   application = thunar_application_get ();
@@ -2096,7 +2088,7 @@ thunar_launcher_action_delete (ThunarLauncher *launcher)
 
   _thunar_return_if_fail (THUNAR_IS_LAUNCHER (launcher));
 
-  if (launcher->parent_folder == NULL || launcher->current_directory_selected)
+  if (launcher->parent_folder == NULL || launcher->files_are_selected == FALSE)
     return;
 
   application = thunar_application_get ();
@@ -2441,7 +2433,7 @@ thunar_launcher_action_cut (ThunarLauncher *launcher)
 
   _thunar_return_if_fail (THUNAR_IS_LAUNCHER (launcher));
 
-  if (launcher->current_directory_selected || launcher->parent_folder == NULL)
+  if (launcher->files_are_selected == FALSE || launcher->parent_folder == NULL)
     return;
 
   clipboard = thunar_clipboard_manager_get_for_display (gtk_widget_get_display (launcher->widget));
@@ -2458,7 +2450,7 @@ thunar_launcher_action_copy (ThunarLauncher *launcher)
 
   _thunar_return_if_fail (THUNAR_IS_LAUNCHER (launcher));
 
-  if (launcher->current_directory_selected)
+  if (launcher->files_are_selected == FALSE)
     return;
 
   clipboard = thunar_clipboard_manager_get_for_display (gtk_widget_get_display (launcher->widget));
@@ -2567,7 +2559,7 @@ thunar_launcher_append_open_section (ThunarLauncher *launcher,
   _thunar_return_val_if_fail (THUNAR_IS_LAUNCHER (launcher), FALSE);
 
   /* Usually it is not required to open the current directory */
-  if (launcher->current_directory_selected && !force)
+  if (launcher->files_are_selected == FALSE && !force)
     return FALSE;
 
   /* determine the set of applications that work for all selected files */