diff --git a/src/main.c b/src/main.c
index 20756b42873933fc6b1ae27b6d91af71d33f1051..b80e79cdd56058743f201780115da47f60ac69ba 100644
--- a/src/main.c
+++ b/src/main.c
@@ -8,14 +8,15 @@
 #include "rugby-app-window.h"
 #include "rugby-pref-window.h"
 
-static GtkWidget *window = NULL;
-
 static void
 on_activate (              GApplication *app,
              G_GNUC_UNUSED gpointer      user_data)
 {
+    g_assert (GTK_IS_APPLICATION (app));
+
+    GtkWindow *window = gtk_application_get_active_window (GTK_APPLICATION (app));
     if (!window)
-        window = GTK_WIDGET (rugby_app_window_new (GTK_APPLICATION (app)));
+        window = GTK_WINDOW (rugby_app_window_new (GTK_APPLICATION (app)));
 
     if (g_strcmp0 (PROFILE, "development") == 0)
         gtk_widget_add_css_class (GTK_WIDGET (window), "devel");