diff --git a/module/obmc/wsgi/apps/rest_dbus.py b/module/obmc/wsgi/apps/rest_dbus.py
index bf7db41..a0f6e4d 100644
--- a/module/obmc/wsgi/apps/rest_dbus.py
+++ b/module/obmc/wsgi/apps/rest_dbus.py
@@ -967,22 +967,26 @@
         self.wsock = wsock
         self.paths = filters.get("paths", [])
         self.interfaces = filters.get("interfaces", [])
+        self.signals = []
+        self.socket_error = False
         if not self.paths:
             self.paths.append(None)
         bus = dbus.SystemBus()
         # Add a signal receiver for every path the client is interested in
         for path in self.paths:
-            bus.add_signal_receiver(
+            add_sig = bus.add_signal_receiver(
                 self.interfaces_added_handler,
                 dbus_interface=dbus.BUS_DAEMON_IFACE + '.ObjectManager',
                 signal_name='InterfacesAdded',
                 path=path)
-            bus.add_signal_receiver(
+            chg_sig = bus.add_signal_receiver(
                 self.properties_changed_handler,
                 dbus_interface=dbus.PROPERTIES_IFACE,
                 signal_name='PropertiesChanged',
                 path=path,
                 path_keyword='path')
+            self.signals.append(add_sig)
+            self.signals.append(chg_sig)
         loop = gobject.MainLoop()
         # gobject's mainloop.run() will block the entire process, so the gevent
         # scheduler and hence greenlets won't execute. The while-loop below
@@ -991,6 +995,11 @@
         gcontext = loop.get_context()
         while loop is not None:
             try:
+                if self.socket_error:
+                    for signal in self.signals:
+                        signal.remove()
+                    loop.quit()
+                    break;
                 if gcontext.pending():
                     gcontext.iteration()
                 else:
@@ -1011,7 +1020,8 @@
             response[self.keyNames['intfMap']] = iprops
             try:
                 self.wsock.send(json.dumps(response))
-            except WebSocketError:
+            except:
+                self.socket_error = True
                 return
 
     def properties_changed_handler(self, interface, new, old, **kw):
@@ -1026,7 +1036,8 @@
             response[self.keyNames['propMap']] = new
             try:
                 self.wsock.send(json.dumps(response))
-            except WebSocketError:
+            except:
+                self.socket_error = True
                 return
 
 
