diff --git a/pysystemmgr/system_manager.py b/pysystemmgr/system_manager.py
index 6969485..72fa59c 100644
--- a/pysystemmgr/system_manager.py
+++ b/pysystemmgr/system_manager.py
@@ -7,7 +7,6 @@
 import dbus.service
 import dbus.mainloop.glib
 import os
-import time
 import obmc.dbuslib.propertycacher as PropertyCacher
 from obmc.dbuslib.bindings import DbusProperties, DbusObjectManager, get_dbus
 import obmc.enums
@@ -17,8 +16,6 @@
 
 DBUS_NAME = 'org.openbmc.managers.System'
 OBJ_NAME = '/org/openbmc/managers/System'
-HEARTBEAT_CHECK_INTERVAL = 20000
-STATE_START_TIMEOUT = 10
 INTF_SENSOR = 'org.openbmc.SensorValue'
 INTF_ITEM = 'org.openbmc.InventoryItem'
 INTF_CONTROL = 'org.openbmc.Control'
@@ -95,10 +92,6 @@
             for name in self.system_states[state_name]:
                 self.start_process(name)
 
-        if (state_name == "BMC_INIT"):
-            ## Add poll for heartbeat
-            gobject.timeout_add(HEARTBEAT_CHECK_INTERVAL, self.heartbeat_check)
-
         try:
             cb = System.ENTER_STATE_CALLBACK[state_name]
             for methd in cb.keys():
@@ -192,19 +185,6 @@
                 ## TODO: error
                 print "ERROR: starting process: "+" ".join(cmdline)
 
-    def heartbeat_check(self):
-        for name in System.APPS.keys():
-            app = System.APPS[name]
-            if app['start_process'] and 'popen' in app:
-                ##   make sure process is still alive
-                p = app['popen']
-                p.poll()
-                if p.returncode is None:
-                    print "Process for "+name+" appears to be dead"
-                    self.start_process(name)
-
-        return True
-
     def bus_handler(self, owned_name, old, new):
         if obmc.dbuslib.bindings.is_unique(owned_name) or not new:
             return
