diff --git a/sickbeard/providers/generic.py b/sickbeard/providers/generic.py
index a4e702533e8f62d74ec449edaf736c75accdd00d..b97a86dd936eb6022a0b138acaee8d5636e9cdc0 100644
--- a/sickbeard/providers/generic.py
+++ b/sickbeard/providers/generic.py
@@ -156,7 +156,11 @@ class GenericProvider:
         if result.url.startswith('magnet'):
             try:
                 torrent_hash = re.findall('urn:btih:([\w]{32,40})', result.url)[0].upper()
-                torrent_name = re.findall('dn=([^&]+)', result.url)[0]
+
+                try:
+                    torrent_name = re.findall('dn=([^&]+)', result.url)[0]
+                except:
+                    torrent_name = 'NO_DOWNLOAD_NAME'
 
                 if len(torrent_hash) == 32:
                     torrent_hash = b16encode(b32decode(torrent_hash)).upper()
@@ -203,6 +207,8 @@ class GenericProvider:
             self.proxyGlypeProxySSLwarning = None
 
         for url in urls:
+            if 'NO_DOWNLOAD_NAME' in url:
+                continue
             if helpers.headURL(self.proxy._buildURL(url), session=self.session, headers=self.headers,
                                proxyGlypeProxySSLwarning=self.proxyGlypeProxySSLwarning):
                 return url
@@ -226,6 +232,9 @@ class GenericProvider:
             self.headers.pop('Referer')
 
         for url in urls:
+            if 'NO_DOWNLOAD_NAME' in url:
+                continue
+
             logger.log(u"Downloading a result from " + self.name + " at " + url)
             if helpers.download_file(self.proxy._buildURL(url), filename, session=self.session, headers=self.headers):
                 if self._verify_download(filename):