diff --git a/.project b/.project
new file mode 100644
index 0000000..356efdd
--- /dev/null
+++ b/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>mutter</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
diff --git a/src/compositor/compositor-private.h b/src/compositor/compositor-private.h
index e7eadf8..e67d2bc 100644
--- a/src/compositor/compositor-private.h
+++ b/src/compositor/compositor-private.h
@@ -35,7 +35,7 @@
 {
   MetaScreen            *screen;
 
-  ClutterActor          *stage, *window_group, *overlay_group;
+  ClutterActor          *stage, *window_group, *overlay_group, *top_window_group;
   ClutterActor          *background_actor;
   ClutterActor		*hidden_group;
   GList                 *windows;
diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c
index e0e9b71..57df542 100644
--- a/src/compositor/compositor.c
+++ b/src/compositor/compositor.c
@@ -232,6 +232,23 @@
 }
 
 /**
+ * meta_get_top_window_group_for_screen:
+ * @screen: a #MetaScreen
+ *
+ * Returns: (transfer none): The top window group corresponding to @screen
+ */
+ClutterActor *
+meta_get_top_window_group_for_screen (MetaScreen *screen)
+{
+  MetaCompScreen *info = meta_screen_get_compositor_data (screen);
+
+  if (!info)
+    return NULL;
+
+  return info->top_window_group;
+}
+
+/**
  * meta_get_background_actor_for_screen:
  * @screen: a #MetaScreen
  *
@@ -543,6 +560,7 @@
   info->window_group = meta_window_group_new (screen);
   info->background_actor = meta_background_actor_new_for_screen (screen);
   info->overlay_group = clutter_group_new ();
+  info->top_window_group = meta_window_group_new (screen);
   info->hidden_group = clutter_group_new ();
 
   clutter_container_add (CLUTTER_CONTAINER (info->window_group),
diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c
index 371233f..d77a5a1 100644
--- a/src/compositor/meta-window-actor.c
+++ b/src/compositor/meta-window-actor.c
@@ -1508,8 +1508,14 @@
   /* Hang our compositor window state off the MetaWindow for fast retrieval */
   meta_window_set_compositor_private (window, G_OBJECT (self));
 
-  clutter_container_add_actor (CLUTTER_CONTAINER (info->window_group),
+  if (window->type == META_WINDOW_POPUP_MENU){
+    clutter_container_add_actor (CLUTTER_CONTAINER (info->top_window_group),
 			       CLUTTER_ACTOR (self));
+  }else{
+    clutter_container_add_actor (CLUTTER_CONTAINER (info->window_group),
+			       CLUTTER_ACTOR (self));
+  }
+
   clutter_actor_hide (CLUTTER_ACTOR (self));
 
   /* Initial position in the stack is arbitrary; stacking will be synced