diff --git a/src/Instance.cxx b/src/Instance.cxx
index a8ec8e3ae..fd2bbac55 100644
--- a/src/Instance.cxx
+++ b/src/Instance.cxx
@@ -176,3 +176,14 @@ Instance::OnRemoteTag(const char *uri, const Tag &tag) noexcept
 }
 
 #endif
+
+void
+Instance::OnIdle(unsigned flags) noexcept
+{
+	/* send "idle" notifications to all subscribed
+	   clients */
+	client_list->IdleAdd(flags);
+
+	if (flags & (IDLE_PLAYLIST|IDLE_PLAYER|IDLE_MIXER|IDLE_OUTPUT))
+		OnStateModified();
+}
diff --git a/src/Main.cxx b/src/Main.cxx
index d443d7bde..61f1d7f2b 100644
--- a/src/Main.cxx
+++ b/src/Main.cxx
@@ -352,17 +352,6 @@ Instance::BeginShutdownPartitions() noexcept
 	}
 }
 
-void
-Instance::OnIdle(unsigned flags) noexcept
-{
-	/* send "idle" notifications to all subscribed
-	   clients */
-	client_list->IdleAdd(flags);
-
-	if (flags & (IDLE_PLAYLIST|IDLE_PLAYER|IDLE_MIXER|IDLE_OUTPUT))
-		OnStateModified();
-}
-
 static inline void
 MainConfigured(const struct options &options, const ConfigData &raw_config)
 {