Index: libs/libmythupnp/upnpcds.h
===================================================================
--- libs/libmythupnp/upnpcds.h	(revision 27420)
+++ libs/libmythupnp/upnpcds.h	(working copy)
@@ -62,11 +62,13 @@
     CDS_ClientXBMC            = 2,      // XBMC
     CDS_ClientMP101           = 3,      // Netgear MP101
     CDS_ClientXBox            = 4,      // XBox 360
+    CDS_ClientSonyDB          = 5,      // Sony Blu-ray players
 } UPnpCDSClient;
 
 typedef struct
 {
     UPnpCDSClient   nClientType;
+    QString         sHeaderKey;
     QString         sClientId;
 } UPnpCDSClientException;
 
Index: libs/libmythupnp/upnpcds.cpp
===================================================================
--- libs/libmythupnp/upnpcds.cpp	(revision 27420)
+++ libs/libmythupnp/upnpcds.cpp	(working copy)
@@ -190,13 +190,15 @@
 
 static UPnpCDSClientException clientExceptions[] = {
     // Windows Media Player version 12
-    { CDS_ClientWMP,        "Windows-Media-Player" },
+    { CDS_ClientWMP,        "User-Agent","Windows-Media-Player" },
     // Windows Media Player version < 12
-    { CDS_ClientWMP,        "Mozilla/4.0 (compatible; UPnP/1.0; Windows 9x" },
+    { CDS_ClientWMP,        "User-Agent","Mozilla/4.0 (compatible; UPnP/1.0; Windows 9x" },
     // XBMC
-    { CDS_ClientXBMC,       "Platinum" },
+    { CDS_ClientXBMC,       "User-Agent","Platinum" },
     // XBox 360
-    { CDS_ClientXBox,       "Xbox" },
+    { CDS_ClientXBox,       "User-Agent","Xbox" },
+    // Sony Blu-ray players
+    { CDS_ClientSonyDB,     "X-AV-Client-Info","cn=\"Sony Corporation\"; mn=\"Blu-ray Disc Player\"" },
 };
 static uint clientExceptionCount = sizeof(clientExceptions) / 
                                    sizeof(clientExceptions[0]);
@@ -213,14 +215,24 @@
     {
         UPnpCDSClientException *except = &clientExceptions[i];
 
-        int idx = sUserAgent.indexOf(except->sClientId);
+	QString sHeaderValue = pRequest->GetHeaderValue( except->sHeaderKey, "" );
+        int idx = sHeaderValue.indexOf(except->sClientId);
         if (idx != -1)
         {
             pCDSRequest->m_eClient = except->nClientType;;
+            
+            idx += except->sClientId.length();
 
+            // If we have a / at the end of the string then we 
+            // increment the string to skip over it
+            if ( sHeaderValue[ idx ] == '/')
+            {
+                ++ idx;
+            }
+
             // Now find the version number
             QString version = 
-               sUserAgent.mid( idx + except->sClientId.length() + 1 ).trimmed();
+               sHeaderValue.mid( idx + except->sClientId.length() ).trimmed();
             idx = version.indexOf( '.' );
             if (idx != -1)
             {
Index: programs/mythbackend/upnpcdstv.cpp
===================================================================
--- programs/mythbackend/upnpcdstv.cpp	(revision 27420)
+++ programs/mythbackend/upnpcdstv.cpp	(working copy)
@@ -389,6 +389,14 @@
         sMimeType = "video/x-ms-dvr";
     }
 
+    // If we are dealing with a Sony Blu-ray player then we fake the
+    // MIME type to force the video to appear
+    if ( pRequest->m_eClient == CDS_ClientSonyDB )
+    {
+        sMimeType = "video/avi";
+    }
+
+
     // DLNA string below is temp fix for ps3 seeking.
     QString sProtocol = QString( "http-get:*:%1:DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01500000000000000000000000000000" ).arg( sMimeType  );
     QString sURI      = QString( "%1GetRecording%2").arg( sURIBase   )
Index: programs/mythbackend/upnpcdsvideo.cpp
===================================================================
--- programs/mythbackend/upnpcdsvideo.cpp	(revision 27420)
+++ programs/mythbackend/upnpcdsvideo.cpp	(working copy)
@@ -487,6 +487,14 @@
     // ----------------------------------------------------------------------
 
     QString sMimeType = HTTPRequest::GetMimeType( fInfo.suffix() );
+
+    // If we are dealing with a Sony Blu-ray player then we fake the
+    // MIME type to force the video to appear
+    if ( pRequest->m_eClient == CDS_ClientSonyDB )
+    {   
+        sMimeType = "video/avi";
+    }
+
     QString sProtocol = QString( "http-get:*:%1:DLNA.ORG_OP=01;DLNA.ORG_CI=0;"
                                  "DLNA.ORG_FLAGS=0150000000000000000000000000"
                                  "0000" ).arg( sMimeType  );
