diff --git a/data/interfaces/default/comingEpisodes.tmpl b/data/interfaces/default/comingEpisodes.tmpl
index bb6d78ccf701681e39d6fc311dadb0b09a7070ad..b03825352010e6c295a07be4585e957b6116533c 100644
--- a/data/interfaces/default/comingEpisodes.tmpl
+++ b/data/interfaces/default/comingEpisodes.tmpl
@@ -1,5 +1,5 @@
 #import sickbeard
-#import datetime
+#import datetime, locale
 #from sickbeard.common import *
 #set global $title="Coming Episodes"
 
@@ -219,7 +219,7 @@ Custom
                     #set $show_div = "ep_listing listing_toofar"
                     #set $too_late_header = True
                 #elif $cur_ep_airdate >= $today and $cur_ep_airdate < $next_week:
-                    <br /><h1 class="day">$datetime.date.fromordinal($cur_ep_airdate).strftime("%A")</h1>
+                    <br /><h1 class="day">$datetime.date.fromordinal($cur_ep_airdate).strftime("%A").decode(locale.getpreferredencoding())</h1>
                     #if $cur_ep_airdate == $today:
                         #set $show_div = "ep_listing listing_current"
                     #else:
diff --git a/data/interfaces/default/inc_bottom.tmpl b/data/interfaces/default/inc_bottom.tmpl
index 5373b5fceb5c7acbcb4d9fe5b53054264d7e69d6..a9de1096ed76de52cd3e17da0f2dc579a643f4af 100644
--- a/data/interfaces/default/inc_bottom.tmpl
+++ b/data/interfaces/default/inc_bottom.tmpl
@@ -1,5 +1,5 @@
 #import sickbeard
-#import datetime
+#import datetime, locale
 #from sickbeard import db
 #from sickbeard.common import *
 </div>
@@ -14,7 +14,7 @@
 <br />
 <b>Search</b>: <%=str(sickbeard.currentSearchScheduler.timeLeft()).split('.')[0]%> |
 <!--<b>Update</b>: <a%a=str(sickbeard.updateScheduler.timeLeft()).split('.')[0]%> | -->
-<b>Backlog</b>: $sickbeard.backlogSearchScheduler.nextRun().strftime("%a %b %d") <br />
+<b>Backlog</b>: $sickbeard.backlogSearchScheduler.nextRun().strftime("%a %b %d").decode(locale.getpreferredencoding()) <br />
 </div>
 </body>
 </html>
diff --git a/lib/hachoir_parser/parser_list.py b/lib/hachoir_parser/parser_list.py
index 0fd9a307d447c4acc38eede823cfbb89d93b9aa0..88692f3c402ea203412fe0c5f1424c418c8cb058 100644
--- a/lib/hachoir_parser/parser_list.py
+++ b/lib/hachoir_parser/parser_list.py
@@ -198,7 +198,8 @@ class HachoirParserList(ParserList):
             return self.parser_list
 
         todo = []
-        module = __import__("lib.hachoir_parser")
+        from lib import hachoir_parser
+        module = hachoir_parser
         for attrname in dir(module):
             attr = getattr(module, attrname)
             if isinstance(attr, types.ModuleType):
diff --git a/sickbeard/image_cache.py b/sickbeard/image_cache.py
index 7571e83ebec9cc6363210402ac03005bcbddafd7..d80021d1a2c914c569a106745d80d593663e9fd2 100644
--- a/sickbeard/image_cache.py
+++ b/sickbeard/image_cache.py
@@ -18,6 +18,7 @@
 
 import os.path
 import sys
+import traceback
 
 import sickbeard
 
@@ -60,9 +61,15 @@ class ImageCache:
     
     def which_type(self, path):
         if not ek.ek(os.path.isfile, path):
+            logger.log(u"Couldn't check the type of "+str(path)+" cause it doesn't exist", logger.WARNING)
             return None
         img_parser = createParser(path)
         img_metadata = extractMetadata(img_parser)
+
+        if not img_metadata:
+            logger.log(u"Unable to get metadata from "+str(path)+", not using your existing image", logger.DEBUG)
+            return None
+        
         img_ratio = float(img_metadata.get('width'))/float(img_metadata.get('height'))
 
         img_parser.stream._input.close()
@@ -115,17 +122,11 @@ class ImageCache:
 
         logger.log(u"Checking if we need any cache images for show "+str(show_obj.tvdbid), logger.DEBUG)
 
-        has_poster = self.has_poster(show_obj.tvdbid)
-        has_banner = self.has_banner(show_obj.tvdbid)
-        logger.log(u"has_poster: "+str(has_poster)+", has_banner: "+str(has_banner), logger.DEBUG)
-        
         # check if the images are already cached or not
-        need_images = {self.POSTER: not has_poster,
-                       self.BANNER: not has_banner,
+        need_images = {self.POSTER: not self.has_poster(show_obj.tvdbid),
+                       self.BANNER: not self.has_banner(show_obj.tvdbid),
                        }
         
-        logger.log(u"need_images: "+str(need_images), logger.DEBUG)
-
         if not need_images[self.POSTER] and not need_images[self.BANNER]:
             logger.log(u"No new cache images needed, not retrieving new ones")
             return
@@ -138,6 +139,10 @@ class ImageCache:
                     cur_file_name = os.path.abspath(cur_provider.get_poster_path(show_obj))
                     cur_file_type = self.which_type(cur_file_name)
                     
+                    if cur_file_type == None:
+                        logger.log(u"Unable to retrieve image type, not using the image from "+str(cur_file_name), logger.WARNING)
+                        continue
+
                     logger.log(u"Checking if image "+cur_file_name+" (type "+str(cur_file_type)+" needs metadata: "+str(need_images[cur_file_type]), logger.DEBUG)
                     
                     if cur_file_type in need_images and need_images[cur_file_type]: