diff --git a/src/bitmessagemain.py b/src/bitmessagemain.py
index 494814d3..be962bc5 100755
--- a/src/bitmessagemain.py
+++ b/src/bitmessagemain.py
@@ -9,13 +9,6 @@
 
 # The software version variable is now held in shared.py
 
-# import ctypes
-try:
-    from gevent import monkey
-    monkey.patch_all()
-except ImportError as ex:
-    print "Not using the gevent module as it was not found. No need to worry."
-
 import signal  # Used to capture a Ctrl-C keypress so that Bitmessage can shutdown gracefully.
 # The next 3 are used for the API
 from SimpleXMLRPCServer import *
diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py
index 00ac8bde..011b7b54 100644
--- a/src/bitmessageqt/__init__.py
+++ b/src/bitmessageqt/__init__.py
@@ -3333,80 +3333,57 @@ class myTableWidgetItem(QTableWidgetItem):
     def __lt__(self, other):
         return int(self.data(33).toPyObject()) < int(other.data(33).toPyObject())
 
-from threading import Thread
-class UISignaler(Thread,QThread):
+class UISignaler(QThread):
 
     def __init__(self, parent=None):
-        Thread.__init__(self, parent)
         QThread.__init__(self, parent)
 
     def run(self):
         while True:
-            try:
-                command, data = shared.UISignalQueue.get()
-                if command == 'writeNewAddressToTable':
-                    label, address, streamNumber = data
-                    self.emit(SIGNAL(
-                        "writeNewAddressToTable(PyQt_PyObject,PyQt_PyObject,PyQt_PyObject)"), label, address, str(streamNumber))
-                elif command == 'updateStatusBar':
-                    self.emit(SIGNAL("updateStatusBar(PyQt_PyObject)"), data)
-                elif command == 'updateSentItemStatusByHash':
-                    hash, message = data
-                    self.emit(SIGNAL(
-                        "updateSentItemStatusByHash(PyQt_PyObject,PyQt_PyObject)"), hash, message)
-                elif command == 'updateSentItemStatusByAckdata':
-                    ackData, message = data
-                    self.emit(SIGNAL(
-                        "updateSentItemStatusByAckdata(PyQt_PyObject,PyQt_PyObject)"), ackData, message)
-                elif command == 'displayNewInboxMessage':
-                    inventoryHash, toAddress, fromAddress, subject, body = data
-                    self.emit(SIGNAL(
-                        "displayNewInboxMessage(PyQt_PyObject,PyQt_PyObject,PyQt_PyObject,PyQt_PyObject,PyQt_PyObject)"),
-                        inventoryHash, toAddress, fromAddress, subject, body)
-                elif command == 'displayNewSentMessage':
-                    toAddress, fromLabel, fromAddress, subject, message, ackdata = data
-                    self.emit(SIGNAL(
-                        "displayNewSentMessage(PyQt_PyObject,PyQt_PyObject,PyQt_PyObject,PyQt_PyObject,PyQt_PyObject,PyQt_PyObject)"),
-                        toAddress, fromLabel, fromAddress, subject, message, ackdata)
-                elif command == 'updateNetworkStatusTab':
-                    self.emit(SIGNAL("updateNetworkStatusTab()"))
-                elif command == 'updateNumberOfMessagesProcessed':
-                    self.emit(SIGNAL("updateNumberOfMessagesProcessed()"))
-                elif command == 'updateNumberOfPubkeysProcessed':
-                    self.emit(SIGNAL("updateNumberOfPubkeysProcessed()"))
-                elif command == 'updateNumberOfBroadcastsProcessed':
-                    self.emit(SIGNAL("updateNumberOfBroadcastsProcessed()"))
-                elif command == 'setStatusIcon':
-                    self.emit(SIGNAL("setStatusIcon(PyQt_PyObject)"), data)
-                elif command == 'rerenderInboxFromLabels':
-                    self.emit(SIGNAL("rerenderInboxFromLabels()"))
-                elif command == 'rerenderSubscriptions':
-                    self.emit(SIGNAL("rerenderSubscriptions()"))
-                elif command == 'removeInboxRowByMsgid':
-                    self.emit(SIGNAL("removeInboxRowByMsgid(PyQt_PyObject)"), data)
-                else:
-                    sys.stderr.write(
-                        'Command sent to UISignaler not recognized: %s\n' % command)
-            except Exception,ex:
-                # uncaught exception will block gevent
-                import traceback
-                traceback.print_exc()
-                traceback.print_stack()
-                print ex
-                pass
-
-try:
-    import gevent
-except ImportError as ex:
-    gevent = None
-else:
-    def mainloop(app):
-        while True:
-            app.processEvents()
-            gevent.sleep(0.01)
-    def testprint():
-        #print 'this is running'
-        gevent.spawn_later(1, testprint)
+            command, data = shared.UISignalQueue.get()
+            if command == 'writeNewAddressToTable':
+                label, address, streamNumber = data
+                self.emit(SIGNAL(
+                    "writeNewAddressToTable(PyQt_PyObject,PyQt_PyObject,PyQt_PyObject)"), label, address, str(streamNumber))
+            elif command == 'updateStatusBar':
+                self.emit(SIGNAL("updateStatusBar(PyQt_PyObject)"), data)
+            elif command == 'updateSentItemStatusByHash':
+                hash, message = data
+                self.emit(SIGNAL(
+                    "updateSentItemStatusByHash(PyQt_PyObject,PyQt_PyObject)"), hash, message)
+            elif command == 'updateSentItemStatusByAckdata':
+                ackData, message = data
+                self.emit(SIGNAL(
+                    "updateSentItemStatusByAckdata(PyQt_PyObject,PyQt_PyObject)"), ackData, message)
+            elif command == 'displayNewInboxMessage':
+                inventoryHash, toAddress, fromAddress, subject, body = data
+                self.emit(SIGNAL(
+                    "displayNewInboxMessage(PyQt_PyObject,PyQt_PyObject,PyQt_PyObject,PyQt_PyObject,PyQt_PyObject)"),
+                    inventoryHash, toAddress, fromAddress, subject, body)
+            elif command == 'displayNewSentMessage':
+                toAddress, fromLabel, fromAddress, subject, message, ackdata = data
+                self.emit(SIGNAL(
+                    "displayNewSentMessage(PyQt_PyObject,PyQt_PyObject,PyQt_PyObject,PyQt_PyObject,PyQt_PyObject,PyQt_PyObject)"),
+                    toAddress, fromLabel, fromAddress, subject, message, ackdata)
+            elif command == 'updateNetworkStatusTab':
+                self.emit(SIGNAL("updateNetworkStatusTab()"))
+            elif command == 'updateNumberOfMessagesProcessed':
+                self.emit(SIGNAL("updateNumberOfMessagesProcessed()"))
+            elif command == 'updateNumberOfPubkeysProcessed':
+                self.emit(SIGNAL("updateNumberOfPubkeysProcessed()"))
+            elif command == 'updateNumberOfBroadcastsProcessed':
+                self.emit(SIGNAL("updateNumberOfBroadcastsProcessed()"))
+            elif command == 'setStatusIcon':
+                self.emit(SIGNAL("setStatusIcon(PyQt_PyObject)"), data)
+            elif command == 'rerenderInboxFromLabels':
+                self.emit(SIGNAL("rerenderInboxFromLabels()"))
+            elif command == 'rerenderSubscriptions':
+                self.emit(SIGNAL("rerenderSubscriptions()"))
+            elif command == 'removeInboxRowByMsgid':
+                self.emit(SIGNAL("removeInboxRowByMsgid(PyQt_PyObject)"), data)
+            else:
+                sys.stderr.write(
+                    'Command sent to UISignaler not recognized: %s\n' % command)
 
 def run():
     app = QtGui.QApplication(sys.argv)
@@ -3443,8 +3420,4 @@ def run():
     myapp.notifierInit()
     if shared.safeConfigGetBoolean('bitmessagesettings', 'dontconnect'):
         myapp.showConnectDialog() # ask the user if we may connect
-    if gevent is None:
-        sys.exit(app.exec_())
-    else:
-        gevent.joinall([gevent.spawn(testprint), gevent.spawn(mainloop, app), gevent.spawn(mainloop, app), gevent.spawn(mainloop, app), gevent.spawn(mainloop, app), gevent.spawn(mainloop, app)])
-        print 'done'
+    sys.exit(app.exec_())
diff --git a/src/class_bgWorker.py b/src/class_bgWorker.py
deleted file mode 100644
index c01e26ef..00000000
--- a/src/class_bgWorker.py
+++ /dev/null
@@ -1,38 +0,0 @@
-#! /usr/bin/python
-# -*- coding: utf-8 -*-
-# cody by linker.lin@me.com
-
-__author__ = 'linkerlin'
-
-
-import threading
-import Queue
-import time
-
-class bgWorker(threading.Thread):
-    def __init__(self):
-        threading.Thread.__init__(self)
-        self.q = Queue.Queue()
-        self.setDaemon(True)
-
-    def post(self,job):
-        self.q.put(job)
-
-    def run(self):
-        while 1:
-            job=None
-            try:
-                job = self.q.get(block=True)
-                if job:
-                    job()
-            except Exception as ex:
-                print "Error,job exception:",ex.message,type(ex)
-                time.sleep(0.05)
-            else:
-                #print "job: ", job, " done"
-                pass
-            finally:
-                time.sleep(0.05)
-
-bgworker = bgWorker()
-bgworker.start()