diff --git a/src/menu.c b/src/menu.c
index 6e81a865d68052c77e0056cf13300f2c2c67cf38..d8399f6af5ef33ff21f8582128a6cc3acc2a4980 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -97,6 +97,8 @@ popup_position_func (GtkMenu * menu, gint * x, gint * y, gboolean * push_in,
 {
     GtkRequisition req;
     GdkPoint *pos;
+    gint monitor;
+    GdkScreen *screen;
 
     pos = user_data;
 
@@ -120,6 +122,11 @@ popup_position_func (GtkMenu * menu, gint * x, gint * y, gboolean * push_in,
     {
         *y = (gdk_screen_height () - req.height) / 2;
     }
+
+    screen = gtk_widget_get_screen (GTK_WIDGET(menu));
+    monitor = find_monitor_at_point (screen, *x, *y);
+    gtk_menu_set_monitor (GTK_MENU (menu), monitor);
+
     g_free (user_data);
 }