Index: gnome-session/gsm-manager.c
===================================================================
--- gnome-session/gsm-manager.c	(Revision 5144)
+++ gnome-session/gsm-manager.c	(Arbeitskopie)
@@ -2741,7 +2768,20 @@
 
         dup = find_app_for_app_id (manager, app_id);
         if (dup != NULL) {
-                g_debug ("GsmManager: not adding app: app-id already exists");
+                /* try to assign the phase of the new app to the old one in
+                   case it was unassigned before */
+                if (gsm_app_peek_phase (dup) == GSM_MANAGER_PHASE_APPLICATION) {
+                        GsmManagerPhase phase;
+
+                        phase = gsm_app_peek_phase (app);
+                        g_object_set (dup, "phase", phase, NULL);
+
+                        g_debug ("GsmManager: app already exists, but inherited phase '%s' "
+                                 "to old instance", phase_num_to_name (phase));
+                } else {
+                        g_debug ("GsmManager: not adding app: app-id already exists");
+                }
+
                 return;
         }
 
Index: gnome-session/gsm-resumed-app.c
===================================================================
--- gnome-session/gsm-resumed-app.c	(Revision 5144)
+++ gnome-session/gsm-resumed-app.c	(Arbeitskopie)
@@ -228,6 +228,7 @@
         }
 
         app = g_object_new (GSM_TYPE_RESUMED_APP,
+                            "phase", GSM_MANAGER_PHASE_APPLICATION,
                             "startup-id", id,
                             NULL);
         g_free (id);

