diff --git a/mythtv/libs/libmythupnp/upnputil.cpp b/mythtv/libs/libmythupnp/upnputil.cpp
index 87c2433..4064b97 100644
--- a/mythtv/libs/libmythupnp/upnputil.cpp
+++ b/mythtv/libs/libmythupnp/upnputil.cpp
@@ -56,10 +56,12 @@ QString LookupUDN( QString sDeviceType )
 
     LOG(VB_UPNP, LOG_INFO, sLoc + " sName=" + sName + ", sUDN=" + sUDN);
 
-    if (sUDN.isEmpty()) 
+    // Generate new UUID if current is missing or broken
+    if (sUDN.isEmpty() || sUDN[0] == '{' ) 
     {
         sUDN = QUuid::createUuid().toString();
-	sUDN.chop(2);
+        size_t length = sUDN.length();
+        sUDN = sUDN.mid(1, length-2); // strip leading and trailing "{}"
 
         Configuration *pConfig = UPnp::GetConfiguration();
 
