diff --git a/SickBeard.py b/SickBeard.py
index bd2279eb6f09528f0afb6c764bb683aaa3213e99..d95746383c94f4e6e954a2c5b3b0e41b2f8f94ca 100755
--- a/SickBeard.py
+++ b/SickBeard.py
@@ -460,7 +460,7 @@ class SickRage(object):
         logger.log(u"Loading initial show list", logger.DEBUG)
 
         myDB = db.DBConnection()
-        sqlResults = myDB.select("SELECT * FROM tv_shows")
+        sqlResults = myDB.select("SELECT * FROM tv_shows;")
 
         sickbeard.showList = []
         for sqlShow in sqlResults:
@@ -474,6 +474,33 @@ class SickRage(object):
                     logger.ERROR)
                 logger.log(traceback.format_exc(), logger.DEBUG)
 
+        self.fix_subtitles_codes()
+
+
+    def fix_subtitles_codes(self):
+        myDB = db.DBConnection()
+        sqlResults = myDB.select(
+            "SELECT showid, subtitles_lastsearch, season, episode FROM tv_episodes " +
+            "WHERE subtitles != '' AND subtitles_lastsearch < ?;",
+                [datetime.datetime(2015, 7, 15, 17, 20, 44, 326380).strftime("%Y-%m-%d %H:%M:%S")])
+
+        if not sqlResults:
+            return
+
+        logger.log("Fixing old subtitle codes")
+        for sqlResult in sqlResults:
+            showObj = sickbeard.helpers.findCertainShow(sickbeard.showList, int(sqlResult['showid']))
+            if not showObj:
+                continue
+
+            epObj = showObj.getEpisode(int(sqlResult["season"]), int(sqlResult["episode"]))
+            if isinstance(epObj, str):
+                continue
+
+            epObj.refreshSubtitles()
+            epObj.subtitles_lastsearch = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
+            epObj.saveToDB()
+
     def restoreDB(self, srcDir, dstDir):
         try:
             filesList = ['sickbeard.db', 'config.ini', 'failed.db', 'cache.db']
diff --git a/gui/slick/images/subtitles/flags/alb.png b/gui/slick/images/subtitles/flags/alb.png
new file mode 100644
index 0000000000000000000000000000000000000000..92354cb6e257be2cade71cb825027ce8d9efc06d
Binary files /dev/null and b/gui/slick/images/subtitles/flags/alb.png differ
diff --git a/gui/slick/images/subtitles/flags/chi.png b/gui/slick/images/subtitles/flags/chi.png
new file mode 100644
index 0000000000000000000000000000000000000000..89144146219e6fbec7eaa89e1bf4b073d299569e
Binary files /dev/null and b/gui/slick/images/subtitles/flags/chi.png differ
diff --git a/gui/slick/images/subtitles/flags/cze.png b/gui/slick/images/subtitles/flags/cze.png
new file mode 100644
index 0000000000000000000000000000000000000000..c8403dd21fd15f46d501a766a7a97733462f3b22
Binary files /dev/null and b/gui/slick/images/subtitles/flags/cze.png differ
diff --git a/gui/slick/images/subtitles/flags/dum.png b/gui/slick/images/subtitles/flags/dum.png
new file mode 100644
index 0000000000000000000000000000000000000000..cf9797eb90aebfeaafb31e18cb9a717cd29989c4
Binary files /dev/null and b/gui/slick/images/subtitles/flags/dum.png differ
diff --git a/gui/slick/images/subtitles/flags/dut.png b/gui/slick/images/subtitles/flags/dut.png
new file mode 100644
index 0000000000000000000000000000000000000000..cf9797eb90aebfeaafb31e18cb9a717cd29989c4
Binary files /dev/null and b/gui/slick/images/subtitles/flags/dut.png differ
diff --git a/gui/slick/images/subtitles/flags/fre.png b/gui/slick/images/subtitles/flags/fre.png
new file mode 100644
index 0000000000000000000000000000000000000000..cec29aac0016d5e54017364c3df8bb8c359253d0
Binary files /dev/null and b/gui/slick/images/subtitles/flags/fre.png differ
diff --git a/gui/slick/images/subtitles/flags/frm.png b/gui/slick/images/subtitles/flags/frm.png
new file mode 100644
index 0000000000000000000000000000000000000000..8332c4ec23c853944c29b02d7b32a88033f48a71
Binary files /dev/null and b/gui/slick/images/subtitles/flags/frm.png differ
diff --git a/gui/slick/images/subtitles/flags/fro.png b/gui/slick/images/subtitles/flags/fro.png
new file mode 100644
index 0000000000000000000000000000000000000000..8332c4ec23c853944c29b02d7b32a88033f48a71
Binary files /dev/null and b/gui/slick/images/subtitles/flags/fro.png differ
diff --git a/gui/slick/images/subtitles/flags/ger.png b/gui/slick/images/subtitles/flags/ger.png
new file mode 100644
index 0000000000000000000000000000000000000000..8c52b0aa818347c9f0623646769e6145961526b4
Binary files /dev/null and b/gui/slick/images/subtitles/flags/ger.png differ
diff --git a/gui/slick/images/subtitles/flags/gsw.png b/gui/slick/images/subtitles/flags/gsw.png
new file mode 100644
index 0000000000000000000000000000000000000000..242ec01aaf5ad351cb978a4eb650ad801a438b09
Binary files /dev/null and b/gui/slick/images/subtitles/flags/gsw.png differ
diff --git a/gui/slick/images/subtitles/flags/ice.png b/gui/slick/images/subtitles/flags/ice.png
new file mode 100644
index 0000000000000000000000000000000000000000..1eea80a7b739bea4a249dd10a3457010525f60da
Binary files /dev/null and b/gui/slick/images/subtitles/flags/ice.png differ
diff --git a/gui/slick/images/subtitles/flags/mac.png b/gui/slick/images/subtitles/flags/mac.png
new file mode 100644
index 0000000000000000000000000000000000000000..30384347c8ee71d4521876cd7663720a3fd91d50
Binary files /dev/null and b/gui/slick/images/subtitles/flags/mac.png differ
diff --git a/gui/slick/images/subtitles/flags/pob.png b/gui/slick/images/subtitles/flags/pob.png
new file mode 100644
index 0000000000000000000000000000000000000000..2fecf539d9ddd9b191efdd0eae3003a1d2c2e37a
Binary files /dev/null and b/gui/slick/images/subtitles/flags/pob.png differ
diff --git a/gui/slick/images/subtitles/flags/rum.png b/gui/slick/images/subtitles/flags/rum.png
new file mode 100644
index 0000000000000000000000000000000000000000..667f21fd9d552df546386174e506a6b5b606a258
Binary files /dev/null and b/gui/slick/images/subtitles/flags/rum.png differ
diff --git a/gui/slick/interfaces/default/inc_addShowOptions.tmpl b/gui/slick/interfaces/default/inc_addShowOptions.tmpl
index 668c8411f5c7c3b5a1c8734b43a306d80bf1147a..fe26f8b79614b1527d4de7c079c49f06d30e38d5 100644
--- a/gui/slick/interfaces/default/inc_addShowOptions.tmpl
+++ b/gui/slick/interfaces/default/inc_addShowOptions.tmpl
@@ -26,6 +26,18 @@
                 </span>
             </label>
         </div>
+        <div class="field-pair">
+            <label for="statusSelectAfter">
+                <span class="component-title">Status for all future episodes</span>
+                <span class="component-desc">
+                    <select name="defaultStatusAfter" id="statusSelectAfter" class="form-control form-control-inline input-sm">
+                    #for $curStatus in [$SKIPPED, $WANTED, $ARCHIVED, $IGNORED]:
+                        <option value="$curStatus" #if $sickbeard.STATUS_DEFAULT_AFTER == $curStatus then 'selected="selected"' else ''#>$statusStrings[$curStatus]</option>
+                    #end for
+                    </select>
+                </span>
+            </label>
+        </div>
         <div class="field-pair alt">
             <label for="flatten_folders" class="clearfix">
                 <span class="component-title">Flatten Folders</span>
diff --git a/gui/slick/interfaces/default/inc_qualityChooser.tmpl b/gui/slick/interfaces/default/inc_qualityChooser.tmpl
index 235134f80e6a7633145dda95e895aab1561c762d..a7e7299d2a723bbabcc7677c5c068919397fd7fa 100644
--- a/gui/slick/interfaces/default/inc_qualityChooser.tmpl
+++ b/gui/slick/interfaces/default/inc_qualityChooser.tmpl
@@ -21,7 +21,7 @@
 <div id="customQualityWrapper">
 	<div id="customQuality">
 	    <div class="component-group-desc">
-	        <p><b>Preferred<b> qualities will replace an <b>Allowed<b> quality if found, initially or in the future, even if it is a lower quality</p>
+	        <p><b>Preferred</b> qualities will replace an <b>Allowed</b> quality if found, initially or in the future, even if it is a lower quality</p>
 	    </div>
 
         <div style="padding-right: 40px; text-align: left; float: left;">
diff --git a/gui/slick/js/addShowOptions.js b/gui/slick/js/addShowOptions.js
index ceea77147452b7792165c11aa8629ebefb3febb2..03653a49f54340c6007167f5582510ed25fa8791 100644
--- a/gui/slick/js/addShowOptions.js
+++ b/gui/slick/js/addShowOptions.js
@@ -17,7 +17,8 @@ $(document).ready(function () {
             defaultFlattenFolders: $('#flatten_folders').prop('checked'),
             subtitles: $('#subtitles').prop('checked'),
             anime: $('#anime').prop('checked'),
-            scene: $('#scene').prop('checked')
+            scene: $('#scene').prop('checked'),
+            defaultStatusAfter: $('#statusSelectAfter').val()
         });
 
         $(this).attr('disabled', true);
@@ -28,8 +29,8 @@ $(document).ready(function () {
         });
     });
 
-    $('#statusSelect, #qualityPreset, #flatten_folders, #anyQualities, #bestQualities, #subtitles, #scene, #anime').change(function () {
+    $('#statusSelect, #qualityPreset, #flatten_folders, #anyQualities, #bestQualities, #subtitles, #scene, #anime, #statusSelectAfter').change(function () {
         $('#saveDefaultsButton').attr('disabled', false);
     });
 
-});
\ No newline at end of file
+});
diff --git a/lib/trakt/trakt.py b/lib/trakt/trakt.py
index f8f048026395647835460ded7781b05217c30383..bb176f9fb25d5821c12cf2c89f1cd329e7f6b84c 100644
--- a/lib/trakt/trakt.py
+++ b/lib/trakt/trakt.py
@@ -92,27 +92,29 @@ class TraktAPI():
         except requests.RequestException as e:
             code = getattr(e.response, 'status_code', None)
             if not code:
+                if 'timed out' in e:
+                    logger.log(u'Timeout connecting to Trakt. Try to increase timeout value in Trakt settings', logger.WARNING)                      
                 # This is pretty much a fatal error if there is no status_code
-                # It means there basically was no response at all
-                raise traktException(e)
+                # It means there basically was no response at all                    
+                else:
+                    logger.log(u'Could not connect to Trakt. Error: {0}'.format(e), logger.WARNING)                
             elif code is 502:
                 # Retry the request, cloudflare had a proxying issue
                 logger.log(u'Retrying trakt api request: %s' % path, logger.WARNING)
                 return self.traktRequest(path, data, headers, url, method)
             elif code is 401:
-                logger.log(u'Unauthorized. Please check your Trakt settings', logger.WARNING)
                 if self.traktToken(refresh=True, count=count):
                     return self.traktRequest(path, data, headers, url, method)
-                raise traktAuthException(e)
+                else:
+                    logger.log(u'Unauthorized. Please check your Trakt settings', logger.WARNING)
             elif code in (500,501,503,504,520,521,522):
                 #http://docs.trakt.apiary.io/#introduction/status-codes
                 logger.log(u'Trakt may have some issues and it\'s unavailable. Try again later please', logger.WARNING)
-                return {}
             elif code is 404:
                 logger.log(u'Trakt error (404) the resource does not exist: %s' % url + path, logger.WARNING)
-                return {}
             else:
-                raise traktException(e)
+                logger.log(u'Could not connect to Trakt. Code error: {0}'.format(code), logger.ERROR)
+            return {}
 
         # check and confirm trakt call did not fail
         if isinstance(resp, dict) and resp.get('status', False) == 'failure':
diff --git a/sickbeard/__init__.py b/sickbeard/__init__.py
index 5a05113cd313dd7a17221dee7ba00c51cb92cdd6..2137d00f43c4c9e33837597585c82cf7c42a3da2 100644
--- a/sickbeard/__init__.py
+++ b/sickbeard/__init__.py
@@ -51,7 +51,7 @@ from sickbeard import scene_numbering, scene_exceptions, name_cache
 from indexers.indexer_api import indexerApi
 from indexers.indexer_exceptions import indexer_shownotfound, indexer_showincomplete, indexer_exception, indexer_error, \
     indexer_episodenotfound, indexer_attributenotfound, indexer_seasonnotfound, indexer_userabort, indexerExcepts
-from sickbeard.common import SD, SKIPPED, NAMING_REPEAT
+from sickbeard.common import SD, SKIPPED, WANTED, NAMING_REPEAT
 from sickbeard.databases import mainDB, cache_db, failed_db
 from sickbeard.helpers import ex
 
@@ -197,6 +197,7 @@ METADATA_MEDE8ER = None
 
 QUALITY_DEFAULT = None
 STATUS_DEFAULT = None
+STATUS_DEFAULT_AFTER = None
 FLATTEN_FOLDERS_DEFAULT = False
 SUBTITLES_DEFAULT = False
 INDEXER_DEFAULT = None
@@ -557,7 +558,7 @@ def initialize(consoleLogging=True):
             PLEX_SERVER_HOST, PLEX_SERVER_TOKEN, PLEX_HOST, PLEX_USERNAME, PLEX_PASSWORD, DEFAULT_BACKLOG_FREQUENCY, MIN_BACKLOG_FREQUENCY, BACKLOG_STARTUP, SKIP_REMOVED_FILES, \
             showUpdateScheduler, __INITIALIZED__, INDEXER_DEFAULT_LANGUAGE, EP_DEFAULT_DELETED_STATUS, LAUNCH_BROWSER, UPDATE_SHOWS_ON_START, UPDATE_SHOWS_ON_SNATCH, TRASH_REMOVE_SHOW, TRASH_ROTATE_LOGS, SORT_ARTICLE, showList, loadingShowList, \
             NEWZNAB_DATA, NZBS, NZBS_UID, NZBS_HASH, INDEXER_DEFAULT, INDEXER_TIMEOUT, USENET_RETENTION, TORRENT_DIR, \
-            QUALITY_DEFAULT, FLATTEN_FOLDERS_DEFAULT, SUBTITLES_DEFAULT, STATUS_DEFAULT, DAILYSEARCH_STARTUP, \
+            QUALITY_DEFAULT, FLATTEN_FOLDERS_DEFAULT, SUBTITLES_DEFAULT, STATUS_DEFAULT, STATUS_DEFAULT_AFTER, DAILYSEARCH_STARTUP, \
             GROWL_NOTIFY_ONSNATCH, GROWL_NOTIFY_ONDOWNLOAD, GROWL_NOTIFY_ONSUBTITLEDOWNLOAD, TWITTER_NOTIFY_ONSNATCH, TWITTER_NOTIFY_ONDOWNLOAD, TWITTER_NOTIFY_ONSUBTITLEDOWNLOAD, USE_FREEMOBILE, FREEMOBILE_ID, FREEMOBILE_APIKEY, FREEMOBILE_NOTIFY_ONSNATCH, FREEMOBILE_NOTIFY_ONDOWNLOAD, FREEMOBILE_NOTIFY_ONSUBTITLEDOWNLOAD, \
             USE_GROWL, GROWL_HOST, GROWL_PASSWORD, USE_PROWL, PROWL_NOTIFY_ONSNATCH, PROWL_NOTIFY_ONDOWNLOAD, PROWL_NOTIFY_ONSUBTITLEDOWNLOAD, PROWL_API, PROWL_PRIORITY, PROG_DIR, \
             USE_PYTIVO, PYTIVO_NOTIFY_ONSNATCH, PYTIVO_NOTIFY_ONDOWNLOAD, PYTIVO_NOTIFY_ONSUBTITLEDOWNLOAD, PYTIVO_UPDATE_LIBRARY, PYTIVO_HOST, PYTIVO_SHARE_NAME, PYTIVO_TIVO_NAME, \
@@ -783,6 +784,7 @@ def initialize(consoleLogging=True):
 
         QUALITY_DEFAULT = check_setting_int(CFG, 'General', 'quality_default', SD)
         STATUS_DEFAULT = check_setting_int(CFG, 'General', 'status_default', SKIPPED)
+        STATUS_DEFAULT_AFTER = check_setting_int(CFG, 'General', 'status_default_after', WANTED)
         VERSION_NOTIFY = bool(check_setting_int(CFG, 'General', 'version_notify', 1))
         AUTO_UPDATE = bool(check_setting_int(CFG, 'General', 'auto_update', 0))
         NOTIFY_ON_UPDATE = bool(check_setting_int(CFG, 'General', 'notify_on_update', 1))
@@ -1667,6 +1669,7 @@ def save_config():
     new_config['General']['skip_removed_files'] = int(SKIP_REMOVED_FILES)
     new_config['General']['quality_default'] = int(QUALITY_DEFAULT)
     new_config['General']['status_default'] = int(STATUS_DEFAULT)
+    new_config['General']['status_default_after'] = int(STATUS_DEFAULT_AFTER)
     new_config['General']['flatten_folders_default'] = int(FLATTEN_FOLDERS_DEFAULT)
     new_config['General']['indexer_default'] = int(INDEXER_DEFAULT)
     new_config['General']['indexer_timeout'] = int(INDEXER_TIMEOUT)
diff --git a/sickbeard/show_queue.py b/sickbeard/show_queue.py
index c87a325b56483e42b8b615de4864d6e1c36c1549..5a59ce602282e0a46f0a991cf9f1739b62a22cda 100644
--- a/sickbeard/show_queue.py
+++ b/sickbeard/show_queue.py
@@ -133,13 +133,13 @@ class ShowQueue(generic_queue.GenericQueue):
         return queueItemObj
 
     def addShow(self, indexer, indexer_id, showDir, default_status=None, quality=None, flatten_folders=None,
-                lang=None, subtitles=None, anime=None, scene=None, paused=None, blacklist=None, whitelist=None):
+                lang=None, subtitles=None, anime=None, scene=None, paused=None, blacklist=None, whitelist=None, default_status_after=None):
 
         if lang is None:
             lang = sickbeard.INDEXER_DEFAULT_LANGUAGE
 
         queueItemObj = QueueItemAdd(indexer, indexer_id, showDir, default_status, quality, flatten_folders, lang,
-                                    subtitles, anime, scene, paused, blacklist, whitelist)
+                                    subtitles, anime, scene, paused, blacklist, whitelist, default_status_after)
 
         self.add_item(queueItemObj)
 
@@ -196,7 +196,7 @@ class ShowQueueItem(generic_queue.QueueItem):
 
 class QueueItemAdd(ShowQueueItem):
     def __init__(self, indexer, indexer_id, showDir, default_status, quality, flatten_folders, lang, subtitles, anime,
-                 scene, paused, blacklist, whitelist):
+                 scene, paused, blacklist, whitelist, default_status_after):
 
         self.indexer = indexer
         self.indexer_id = indexer_id
@@ -211,6 +211,7 @@ class QueueItemAdd(ShowQueueItem):
         self.paused = paused
         self.blacklist = blacklist
         self.whitelist = whitelist
+        self.default_status_after = default_status_after
 
         if sickbeard.TRAKT_USE_ROLLING_DOWNLOAD and sickbeard.USE_TRAKT:
             self.paused = sickbeard.TRAKT_ROLLING_ADD_PAUSED
@@ -420,8 +421,8 @@ class QueueItemAdd(ShowQueueItem):
                                                                                    self.show.indexer):
             self.show.scene = 1
 
-        # After initial add, set back to WANTED.
-        self.show.default_ep_status = WANTED
+        # After initial add, set to default_status_after.
+        self.show.default_ep_status = self.default_status_after
 
         self.finish()
 
diff --git a/sickbeard/webserve.py b/sickbeard/webserve.py
index 078b862cddf16cffda4ef35896c727b6a8900f14..5b24a1b7272d04283fc9561aa9c292cd0acc66aa 100644
--- a/sickbeard/webserve.py
+++ b/sickbeard/webserve.py
@@ -2555,7 +2555,8 @@ class HomeAddShows(Home):
                                                         flatten_folders=sickbeard.FLATTEN_FOLDERS_DEFAULT,
                                                         subtitles=sickbeard.SUBTITLES_DEFAULT,
                                                         anime=sickbeard.ANIME_DEFAULT,
-                                                        scene=sickbeard.SCENE_DEFAULT)
+                                                        scene=sickbeard.SCENE_DEFAULT,
+                                                        default_status_after=sickbeard.STATUS_DEFAULT_AFTER)
 
             ui.notifications.message('Show added', 'Adding the specified show into ' + show_dir)
         else:
@@ -2568,7 +2569,7 @@ class HomeAddShows(Home):
     def addNewShow(self, whichSeries=None, indexerLang=None, rootDir=None, defaultStatus=None,
                    anyQualities=None, bestQualities=None, flatten_folders=None, subtitles=None,
                    fullShowPath=None, other_shows=None, skipShow=None, providedIndexer=None, anime=None,
-                   scene=None, blacklist=None, whitelist=None):
+                   scene=None, blacklist=None, whitelist=None, defaultStatusAfter=None):
         """
         Receive tvdb id, dir, and other options and create a show from them. If extra show dirs are
         provided then it forwards back to newShow, if not it goes to /home.
@@ -2674,7 +2675,7 @@ class HomeAddShows(Home):
         # add the show
         sickbeard.showQueueScheduler.action.addShow(indexer, indexer_id, show_dir, int(defaultStatus), newQuality,
                                                     flatten_folders, indexerLang, subtitles, anime,
-                                                    scene, None, blacklist, whitelist)
+                                                    scene, None, blacklist, whitelist, int(defaultStatusAfter))
         ui.notifications.message('Show added', 'Adding the specified show into ' + show_dir)
 
         return finishAddShow()
@@ -2747,7 +2748,8 @@ class HomeAddShows(Home):
                                                             flatten_folders=sickbeard.FLATTEN_FOLDERS_DEFAULT,
                                                             subtitles=sickbeard.SUBTITLES_DEFAULT,
                                                             anime=sickbeard.ANIME_DEFAULT,
-                                                            scene=sickbeard.SCENE_DEFAULT)
+                                                            scene=sickbeard.SCENE_DEFAULT,
+                                                            default_status_after=sickbeard.STATUS_DEFAULT_AFTER)
                 num_added += 1
 
         if num_added:
@@ -3672,7 +3674,7 @@ class ConfigGeneral(Config):
         sickbeard.ROOT_DIRS = rootDirString
 
     def saveAddShowDefaults(self, defaultStatus, anyQualities, bestQualities, defaultFlattenFolders, subtitles=False,
-                            anime=False, scene=False):
+                            anime=False, scene=False, defaultStatusAfter=WANTED):
 
         if anyQualities:
             anyQualities = anyQualities.split(',')
@@ -3687,6 +3689,7 @@ class ConfigGeneral(Config):
         newQuality = Quality.combineQualities(map(int, anyQualities), map(int, bestQualities))
 
         sickbeard.STATUS_DEFAULT = int(defaultStatus)
+        sickbeard.STATUS_DEFAULT_AFTER = int(defaultStatusAfter)
         sickbeard.QUALITY_DEFAULT = int(newQuality)
 
         sickbeard.FLATTEN_FOLDERS_DEFAULT = config.checkbox_to_value(defaultFlattenFolders)