diff --git a/feedparser/lib/feedparser/builder/rss.rb b/feedparser/lib/feedparser/builder/rss.rb
index 66773b7..50b1834 100644
--- a/feedparser/lib/feedparser/builder/rss.rb
+++ b/feedparser/lib/feedparser/builder/rss.rb
@@ -240,7 +240,9 @@ def add_meta_items( feed_item, xml_item )
       contentElement = xml_item.at_xpath('media:content') || xml_item.at_xpath('media:group/media:content')
       if contentElement
         feed_item.attachments.first.url = contentElement.get('url')
-        feed_item.attachments.first.length = contentElement.get('duration')
+        # The media:content element sometimes have no duration set, but enclosures do and would be
+        # parsed first. We need to avoid overwriting a set length with nil
+        feed_item.attachments.first.length = contentElement.get('duration') if contentElement.get('duration')
       end
 
       thumbnailElement = xml_item.at_xpath('media:thumbnail') || xml_item.at_xpath('media:content/media:thumbnail') || xml_item.at_xpath('media:group/media:thumbnail')