diff --git a/.travis.yml b/.travis.yml
index e87c996c72adfe54bd0ab4ab0aee6f558b63ad0d..613c5001fa70c6b931f39492bd816d763a01c587 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -17,4 +17,4 @@ script:
   - ./tests/all_tests.py
 
 notifications:
-  irc: "irc.freenode.net#sickrage"
\ No newline at end of file
+  irc: "irc.freenode.net#sickrage-updates"
\ No newline at end of file
diff --git a/sickbeard/logger.py b/sickbeard/logger.py
index 4abbfdea12fc0e6a4f24be3ad6fa03c5887d85ee..d18cc5b161de45add9a8e53109e9fc0e3db10ade 100644
--- a/sickbeard/logger.py
+++ b/sickbeard/logger.py
@@ -18,6 +18,7 @@
 
 from __future__ import with_statement
 import os
+import re
 import sys
 import logging
 import logging.handlers
@@ -25,8 +26,7 @@ import threading
 import platform
 
 import sickbeard
-from sickbeard import classes
-from sickbeard.encodingKludge import ek
+from sickbeard import classes, encodingKludge as ek
 from github import Github
 from pastebin import PastebinAPI
 
@@ -147,13 +147,10 @@ class Logger(object):
         self.gh_issues = Github(login_or_token=sickbeard.GIT_USERNAME, password=sickbeard.GIT_PASSWORD,
                                 user_agent="SiCKRAGE").get_organization(gh_org).get_repo(gh_repo)
 
-        pastebin_url = None
         try:
             if self.logFile and os.path.isfile(self.logFile):
-                with ek(open, self.logFile) as f:
-                    data = f.readlines()
-                    data = "".join(data[len(data) - 100:])
-                    pastebin_url = PastebinAPI().paste('f59b8e9fa1fc2d033e399e6c7fb09d19', data)
+                with ek.ek(open, self.logFile) as f:
+                    log_data = f.readlines()
         except Exception as e:
             pass
 
@@ -162,6 +159,19 @@ class Logger(object):
                 if not curError.title:
                     continue
 
+                regex = "^(%s)\s*([A-Z]+)\s*(.+?)\s*\:\:\s*(.*)$" % curError.time
+
+                pastebin_url = None
+                for i, x in enumerate(reversed(log_data)):
+                    x = ek.ss(x)
+                    match = re.match(regex, x)
+                    if match:
+                        level = match.group(2)
+                        if reverseNames[level] >= ERROR:
+                            paste_data = "".join(log_data[len(log_data) - i - 50:])
+                            pastebin_url = PastebinAPI().paste('f59b8e9fa1fc2d033e399e6c7fb09d19', paste_data)
+                            break
+
                 message = u"### INFO\n"
                 message += u"Python Version: **" + sys.version[:120] + "**\n"
                 message += u"Operating System: **" + platform.platform() + "**\n"
@@ -178,11 +188,14 @@ class Logger(object):
 
                 issue = self.gh_issues.create_issue(title + curError.title, message)
                 if issue:
-                    ui.notifications.message('Your issue ticket #%s was submitted successfully!' % issue.number)
-                    classes.ErrorViewer.clear()
+                    self.log('Your issue ticket #%s was submitted successfully!' % issue.number)
 
+                    if not sickbeard.GIT_AUTOISSUES:
+                        ui.notifications.message('Your issue ticket #%s was submitted successfully!' % issue.number)
+
+                    classes.ErrorViewer.clear()
         except Exception as e:
-            self.log(sickbeard.exceptions.ex(e), logger.ERROR)
+            pass
 
 
 class Wrapper(object):
diff --git a/sickbeard/webserve.py b/sickbeard/webserve.py
index fbf41c22845b94df18d55809a053690e3ea1b987..f469db10ece34269cad9e5a6bcf9a38704acfd28 100644
--- a/sickbeard/webserve.py
+++ b/sickbeard/webserve.py
@@ -159,7 +159,7 @@ class BaseHandler(RequestHandler):
                 url = url[len(sickbeard.WEB_ROOT) + 1:]
 
             if url[:3] != 'api':
-                return self.redirect(url)
+                return self.redirect('/')
             else:
                 self.finish('Wrong API key used')
 
@@ -201,7 +201,8 @@ class WebHandler(BaseHandler):
     def __init__(self, *args, **kwargs):
         super(WebHandler, self).__init__(*args, **kwargs)
         self.io_loop = IOLoop.current()
-        self.executor = ThreadPoolExecutor(50)
+
+    executor = ThreadPoolExecutor(50)
 
     @coroutine
     @asynchronous
@@ -209,13 +210,13 @@ class WebHandler(BaseHandler):
     def get(self, route, *args, **kwargs):
         try:
             # route -> method obj
-            route = route.strip('/').replace('.', '_')
-            method = getattr(self, route, self.index)
+            route = route.strip('/').replace('.', '_') or 'index'
+            method = getattr(self, route)
 
             # process request async
             self.async_call(method, callback=self.async_done)
         except:
-            logger.log('Failed doing webui request "%s": %s' % (route, traceback.format_exc()), logger.ERROR)
+            logger.log('Failed doing webui request "%s": %s' % (route, traceback.format_exc()), logger.DEBUG)
             raise HTTPError(404)
 
     @run_on_executor
@@ -242,14 +243,12 @@ class WebHandler(BaseHandler):
             logger.log('Failed sending webui reponse: %s' % (traceback.format_exc()), logger.DEBUG)
             raise
 
+
     # post uses get method
     post = get
 
 
 class LoginHandler(BaseHandler):
-    def __init__(self, *args, **kwargs):
-        super(LoginHandler, self).__init__(*args, **kwargs)
-
     def get(self, *args, **kwargs):
         if self.get_current_user():
             self.redirect('/home/')
@@ -276,15 +275,11 @@ class LoginHandler(BaseHandler):
 
 
 class LogoutHandler(BaseHandler):
-    def __init__(self, *args, **kwargs):
-        super(LogoutHandler, self).__init__(*args, **kwargs)
-
     def get(self, *args, **kwargs):
         self.clear_cookie("user")
         self.redirect('/login/')
 
-
-class KeyHandler(BaseHandler):
+class KeyHandler(RequestHandler):
     def __init__(self, *args, **kwargs):
         super(KeyHandler, self).__init__(*args, **kwargs)
 
@@ -1818,7 +1813,7 @@ class Home(WebRoot):
         # Finished Searches
         searchstatus = 'finished'
         for searchThread in sickbeard.search_queue.MANUAL_SEARCH_HISTORY:
-            if not int(searchThread.show.indexerid) == int(show or 0):
+            if not str(searchThread.show.indexerid) == show:
                 continue
 
             if isinstance(searchThread, sickbeard.search_queue.ManualSearchQueueItem):
diff --git a/sickbeard/webserveInit.py b/sickbeard/webserveInit.py
index a88cd871c6c65e712c1dd9efbee4d130f92d2ac2..2192233abf7973b5064f7fd61de8e611f22cf22a 100644
--- a/sickbeard/webserveInit.py
+++ b/sickbeard/webserveInit.py
@@ -72,7 +72,7 @@ class SRWebServer(threading.Thread):
                                  gzip=True,
                                  xheaders=sickbeard.HANDLE_REVERSE_PROXY,
                                  cookie_secret='61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o/Vo=',
-                                 login_url='/login/',
+                                 login_url='%s/login/' % self.options['web_root'],
         )
 
         # Main Handlers
@@ -87,11 +87,8 @@ class SRWebServer(threading.Thread):
             (r'%s/api/builder' % self.options['web_root'], RedirectHandler, {"url": self.options['web_root'] + '/apibuilder/'}),
 
             # webui login/logout handlers
-            (r'%s/login(/?.*)' % self.options['web_root'], LoginHandler),
-            (r'%s/logout(/?.*)' % self.options['web_root'], LogoutHandler),
-
-            # webui redirect
-            (r'/', RedirectHandler, {"url": self.options['web_root'] + '/home/'}),
+            (r'%s/login(/?)' % self.options['web_root'], LoginHandler),
+            (r'%s/logout(/?)' % self.options['web_root'], LogoutHandler),
 
             # webui handlers
         ] + route.get_routes(self.options['web_root']))