diff --git a/doc/protocol.xml b/doc/protocol.xml
index dc305d328..db35604f8 100644
--- a/doc/protocol.xml
+++ b/doc/protocol.xml
@@ -375,6 +375,12 @@
, replay gain
+
+
+ partition: a partition
+ was added, removed or changed
+
+
sticker: the sticker database
diff --git a/src/IdleFlags.cxx b/src/IdleFlags.cxx
index 84b49add3..731b2075e 100644
--- a/src/IdleFlags.cxx
+++ b/src/IdleFlags.cxx
@@ -42,6 +42,7 @@ static const char *const idle_names[] = {
"message",
"neighbor",
"mount",
+ "partition",
nullptr
};
diff --git a/src/IdleFlags.hxx b/src/IdleFlags.hxx
index 423ad272d..e6a221477 100644
--- a/src/IdleFlags.hxx
+++ b/src/IdleFlags.hxx
@@ -67,6 +67,9 @@ static constexpr unsigned IDLE_NEIGHBOR = 0x800;
/** the mount list has changed */
static constexpr unsigned IDLE_MOUNT = 0x1000;
+/** the partition list has changed */
+static constexpr unsigned IDLE_PARTITION = 0x2000;
+
/**
* Get idle names
*/
diff --git a/src/command/PartitionCommands.cxx b/src/command/PartitionCommands.cxx
index 873b1dbe0..e8072811c 100644
--- a/src/command/PartitionCommands.cxx
+++ b/src/command/PartitionCommands.cxx
@@ -22,6 +22,7 @@
#include "Request.hxx"
#include "Instance.hxx"
#include "Partition.hxx"
+#include "IdleFlags.hxx"
#include "client/Client.hxx"
#include "client/Response.hxx"
#include "player/Thread.hxx"
@@ -102,5 +103,7 @@ handle_newpartition(Client &client, Request request, Response &response)
StartPlayerThread(partition.pc);
partition.pc.LockUpdateAudio();
+ instance.EmitIdle(IDLE_PARTITION);
+
return CommandResult::OK;
}