diff --git a/NEWS b/NEWS
index 43c7fcbb1..00a676eb7 100644
--- a/NEWS
+++ b/NEWS
@@ -40,11 +40,12 @@ ver 0.22 (not yet released)
 * switch to C++17
   - GCC 7 or clang 4 (or newer) recommended
 
-ver 0.21.25 (not yet released)
+ver 0.21.25 (2020/07/06)
 * protocol:
   - fix crash when using "rangeid" while playing
 * database
   - simple: automatically scan new mounts
+  - upnp: fix compatibility with Plex DLNA
 * storage
   - fix disappearing mounts after mounting twice
   - udisks: fix reading ".mpdignore"
diff --git a/src/db/plugins/upnp/Object.hxx b/src/db/plugins/upnp/Object.hxx
index a9709f869..7a6214467 100644
--- a/src/db/plugins/upnp/Object.hxx
+++ b/src/db/plugins/upnp/Object.hxx
@@ -89,9 +89,18 @@ public:
 		tag.Clear();
 	}
 
+	gcc_pure
+	bool IsRoot() const noexcept {
+		return type == Type::CONTAINER && id == "0";
+	}
+
 	gcc_pure
 	bool Check() const noexcept {
-		return !id.empty() && !parent_id.empty() && !name.empty() &&
+		return !id.empty() &&
+			/* root nodes don't need a parent id and a
+			   name */
+			(IsRoot() || (!parent_id.empty() &&
+				      !name.empty())) &&
 			(type != UPnPDirObject::Type::ITEM ||
 			 item_class != UPnPDirObject::ItemClass::UNKNOWN);
 	}