diff --git a/src/main.c b/src/main.c
index 129b70c0470d23c3c161f41d61ec32c0d8074705..2798c187725a1629f0e38cbe3c7b79711142d630 100644
--- a/src/main.c
+++ b/src/main.c
@@ -463,6 +463,16 @@ compositor_callback (const gchar  *name,
 }
 #endif /* HAVE_COMPOSITOR */
 
+static gboolean
+daemon_callback (const gchar  *name,
+                 const gchar  *value,
+                 gpointer      user_data,
+                 GError      **error)
+{
+    g_warning ("Option 'daemon' is now removed and has no effect!");
+    return TRUE;
+}
+
 static int
 initialize (gint compositor_mode, gboolean replace_wm)
 {
@@ -601,7 +611,6 @@ init_pango_cache (void)
 int
 main (int argc, char **argv)
 {
-    gboolean daemon_mode = FALSE;
     gboolean version = FALSE;
     gboolean replace_wm = FALSE;
     int status;
@@ -613,7 +622,7 @@ main (int argc, char **argv)
 #endif
     GOptionEntry option_entries[] =
     {
-        { "daemon", '\0', 0, G_OPTION_ARG_NONE, &daemon_mode, N_("Fork to the background (not supported)"), NULL },
+        { "daemon", '\0', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK, daemon_callback, N_("Fork to the background (not supported)"), NULL },
 #ifdef HAVE_COMPOSITOR
         { "compositor", '\0', 0, G_OPTION_ARG_CALLBACK, compositor_callback, N_("Set the compositor mode"), "on|off|auto" },
 #else