diff --git a/Emby.Dlna/ContentDirectory/ControlHandler.cs b/Emby.Dlna/ContentDirectory/ControlHandler.cs
index 2590a92a70..1278b367c7 100644
--- a/Emby.Dlna/ContentDirectory/ControlHandler.cs
+++ b/Emby.Dlna/ContentDirectory/ControlHandler.cs
@@ -257,75 +257,77 @@ namespace Emby.Dlna.ContentDirectory
 
             int totalCount;
 
-            var settings = new XmlWriterSettings()
-            {
-                Encoding = Encoding.UTF8,
-                CloseOutput = false,
-                OmitXmlDeclaration = true,
-                ConformanceLevel = ConformanceLevel.Fragment
-            };
-
             using (StringWriter builder = new StringWriterWithEncoding(Encoding.UTF8))
-            using (var writer = XmlWriter.Create(builder, settings))
             {
-                writer.WriteStartElement(string.Empty, "DIDL-Lite", NS_DIDL);
-
-                writer.WriteAttributeString("xmlns", "dc", null, NS_DC);
-                writer.WriteAttributeString("xmlns", "dlna", null, NS_DLNA);
-                writer.WriteAttributeString("xmlns", "upnp", null, NS_UPNP);
-
-                DidlBuilder.WriteXmlRootAttributes(_profile, writer);
-
-                var serverItem = GetItemFromObjectId(id, _user);
-                var item = serverItem.Item;
-
+                var settings = new XmlWriterSettings()
+                {
+                    Encoding = Encoding.UTF8,
+                    CloseOutput = false,
+                    OmitXmlDeclaration = true,
+                    ConformanceLevel = ConformanceLevel.Fragment
+                };
 
-                if (string.Equals(flag, "BrowseMetadata", StringComparison.Ordinal))
+                using (var writer = XmlWriter.Create(builder, settings))
                 {
-                    totalCount = 1;
+                    writer.WriteStartElement(string.Empty, "DIDL-Lite", NS_DIDL);
 
-                    if (item.IsDisplayedAsFolder || serverItem.StubType.HasValue)
-                    {
-                        var childrenResult = GetUserItems(item, serverItem.StubType, _user, sortCriteria, start, requestedCount);
+                    writer.WriteAttributeString("xmlns", "dc", null, NS_DC);
+                    writer.WriteAttributeString("xmlns", "dlna", null, NS_DLNA);
+                    writer.WriteAttributeString("xmlns", "upnp", null, NS_UPNP);
 
-                        _didlBuilder.WriteFolderElement(writer, item, serverItem.StubType, null, childrenResult.TotalRecordCount, filter, id);
-                    }
-                    else
-                    {
-                        var dlnaOptions = _config.GetDlnaConfiguration();
-                        _didlBuilder.WriteItemElement(dlnaOptions, writer, item, _user, null, null, deviceId, filter);
-                    }
+                    DidlBuilder.WriteXmlRootAttributes(_profile, writer);
 
-                    provided++;
-                }
-                else
-                {
-                    var childrenResult = GetUserItems(item, serverItem.StubType, _user, sortCriteria, start, requestedCount);
-                    totalCount = childrenResult.TotalRecordCount;
+                    var serverItem = GetItemFromObjectId(id, _user);
+                    var item = serverItem.Item;
 
-                    provided = childrenResult.Items.Count;
 
-                    var dlnaOptions = _config.GetDlnaConfiguration();
-                    foreach (var i in childrenResult.Items)
+                    if (string.Equals(flag, "BrowseMetadata", StringComparison.Ordinal))
                     {
-                        var childItem = i.Item;
-                        var displayStubType = i.StubType;
+                        totalCount = 1;
 
-                        if (childItem.IsDisplayedAsFolder || displayStubType.HasValue)
+                        if (item.IsDisplayedAsFolder || serverItem.StubType.HasValue)
                         {
-                            var childCount = GetUserItems(childItem, displayStubType, _user, sortCriteria, null, 0)
-                                .TotalRecordCount;
+                            var childrenResult = GetUserItems(item, serverItem.StubType, _user, sortCriteria, start, requestedCount);
 
-                            _didlBuilder.WriteFolderElement(writer, childItem, displayStubType, item, childCount, filter);
+                            _didlBuilder.WriteFolderElement(writer, item, serverItem.StubType, null, childrenResult.TotalRecordCount, filter, id);
                         }
                         else
                         {
-                            _didlBuilder.WriteItemElement(dlnaOptions, writer, childItem, _user, item, serverItem.StubType, deviceId, filter);
+                            var dlnaOptions = _config.GetDlnaConfiguration();
+                            _didlBuilder.WriteItemElement(dlnaOptions, writer, item, _user, null, null, deviceId, filter);
                         }
+
+                        provided++;
                     }
-                }
+                    else
+                    {
+                        var childrenResult = GetUserItems(item, serverItem.StubType, _user, sortCriteria, start, requestedCount);
+                        totalCount = childrenResult.TotalRecordCount;
+
+                        provided = childrenResult.Items.Count;
 
-                writer.WriteFullEndElement();
+                        var dlnaOptions = _config.GetDlnaConfiguration();
+                        foreach (var i in childrenResult.Items)
+                        {
+                            var childItem = i.Item;
+                            var displayStubType = i.StubType;
+
+                            if (childItem.IsDisplayedAsFolder || displayStubType.HasValue)
+                            {
+                                var childCount = GetUserItems(childItem, displayStubType, _user, sortCriteria, null, 0)
+                                    .TotalRecordCount;
+
+                                _didlBuilder.WriteFolderElement(writer, childItem, displayStubType, item, childCount, filter);
+                            }
+                            else
+                            {
+                                _didlBuilder.WriteItemElement(dlnaOptions, writer, childItem, _user, item, serverItem.StubType, deviceId, filter);
+                            }
+                        }
+                    }
+
+                    writer.WriteFullEndElement();
+                }
 
                 xmlWriter.WriteElementString("Result", builder.ToString());
             }
@@ -366,49 +368,51 @@ namespace Emby.Dlna.ContentDirectory
 
             QueryResult<BaseItem> childrenResult;
 
-            var settings = new XmlWriterSettings()
-            {
-                Encoding = Encoding.UTF8,
-                CloseOutput = false,
-                OmitXmlDeclaration = true,
-                ConformanceLevel = ConformanceLevel.Fragment
-            };
-
             using (StringWriter builder = new StringWriterWithEncoding(Encoding.UTF8))
-            using (var writer = XmlWriter.Create(builder, settings))
             {
-                writer.WriteStartElement(string.Empty, "DIDL-Lite", NS_DIDL);
+                var settings = new XmlWriterSettings()
+                {
+                    Encoding = Encoding.UTF8,
+                    CloseOutput = false,
+                    OmitXmlDeclaration = true,
+                    ConformanceLevel = ConformanceLevel.Fragment
+                };
 
-                writer.WriteAttributeString("xmlns", "dc", null, NS_DC);
-                writer.WriteAttributeString("xmlns", "dlna", null, NS_DLNA);
-                writer.WriteAttributeString("xmlns", "upnp", null, NS_UPNP);
+                using (var writer = XmlWriter.Create(builder, settings))
+                {
+                    writer.WriteStartElement(string.Empty, "DIDL-Lite", NS_DIDL);
 
-                DidlBuilder.WriteXmlRootAttributes(_profile, writer);
+                    writer.WriteAttributeString("xmlns", "dc", null, NS_DC);
+                    writer.WriteAttributeString("xmlns", "dlna", null, NS_DLNA);
+                    writer.WriteAttributeString("xmlns", "upnp", null, NS_UPNP);
 
-                var serverItem = GetItemFromObjectId(sparams["ContainerID"], _user);
+                    DidlBuilder.WriteXmlRootAttributes(_profile, writer);
 
-                var item = serverItem.Item;
+                    var serverItem = GetItemFromObjectId(sparams["ContainerID"], _user);
 
-                childrenResult = GetChildrenSorted(item, _user, searchCriteria, sortCriteria, start, requestedCount);
+                    var item = serverItem.Item;
 
-                var dlnaOptions = _config.GetDlnaConfiguration();
+                    childrenResult = GetChildrenSorted(item, _user, searchCriteria, sortCriteria, start, requestedCount);
 
-                foreach (var i in childrenResult.Items)
-                {
-                    if (i.IsDisplayedAsFolder)
-                    {
-                        var childCount = GetChildrenSorted(i, _user, searchCriteria, sortCriteria, null, 0)
-                            .TotalRecordCount;
+                    var dlnaOptions = _config.GetDlnaConfiguration();
 
-                        _didlBuilder.WriteFolderElement(writer, i, null, item, childCount, filter);
-                    }
-                    else
+                    foreach (var i in childrenResult.Items)
                     {
-                        _didlBuilder.WriteItemElement(dlnaOptions, writer, i, _user, item, serverItem.StubType, deviceId, filter);
+                        if (i.IsDisplayedAsFolder)
+                        {
+                            var childCount = GetChildrenSorted(i, _user, searchCriteria, sortCriteria, null, 0)
+                                .TotalRecordCount;
+
+                            _didlBuilder.WriteFolderElement(writer, i, null, item, childCount, filter);
+                        }
+                        else
+                        {
+                            _didlBuilder.WriteItemElement(dlnaOptions, writer, i, _user, item, serverItem.StubType, deviceId, filter);
+                        }
                     }
-                }
 
-                writer.WriteFullEndElement();
+                    writer.WriteFullEndElement();
+                }
 
                 xmlWriter.WriteElementString("Result", builder.ToString());
             }