diff --git a/bin/Openbmc.py b/bin/Openbmc.py
index bb3a879..c81209f 100644
--- a/bin/Openbmc.py
+++ b/bin/Openbmc.py
@@ -4,7 +4,7 @@
 BUS_PREFIX = 'org.openbmc'
 OBJ_PREFIX = "/org/openbmc"
 GPIO_DEV = '/sys/class/gpio'
-
+BUS = "system"
 
 FRU_TYPES = {
 	'SYSTEM' : 0,
@@ -48,6 +48,14 @@
 	'bool'  : 'dbus.Boolean'
 }
 
+def getDBus():
+	bus = None
+	if (BUS == "session"):
+		bus = dbus.SessionBus()
+	else:
+		bus = dbus.SystemBus()
+	return bus
+
 
 def getManagerInterface(bus,manager):
 	bus_name = "org.openbmc.managers."+manager
diff --git a/bin/chassis_control.py b/bin/chassis_control.py
index 1956860..2770507 100644
--- a/bin/chassis_control.py
+++ b/bin/chassis_control.py
@@ -6,6 +6,7 @@
 import dbus
 import dbus.service
 import dbus.mainloop.glib
+import Openbmc
 
 DBUS_NAME = 'org.openbmc.control.Chassis'
 OBJ_NAME = '/org/openbmc/control/'+sys.argv[1]
@@ -37,9 +38,6 @@
 		self.reboot = 0	
 		self.last_power_state = 0
 
-		bus = dbus.SessionBus()
-
-
 		bus.add_signal_receiver(self.power_button_signal_handler, 
 					dbus_interface = "org.openbmc.Button", signal_name = "ButtonPressed", 
 					path="/org/openbmc/buttons/PowerButton_0" )
@@ -150,7 +148,7 @@
 if __name__ == '__main__':
     dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
 
-    bus = dbus.SessionBus()
+    bus = Openbmc.getDBus()
     name = dbus.service.BusName(DBUS_NAME, bus)
     obj = ChassisControlObject(bus, OBJ_NAME)
     mainloop = gobject.MainLoop()
diff --git a/bin/download_manager.py b/bin/download_manager.py
index 842b45e..dbf7c8e 100644
--- a/bin/download_manager.py
+++ b/bin/download_manager.py
@@ -17,7 +17,6 @@
 class DownloadManagerObject(dbus.service.Object):
 	def __init__(self,bus,name):
 		dbus.service.Object.__init__(self,bus,name)
-		bus = dbus.SessionBus()
 		bus.add_signal_receiver(self.DownloadHandler, 
 			dbus_interface = "org.openbmc.Flash", signal_name = "Download")
 
@@ -47,8 +46,7 @@
 
 if __name__ == '__main__':
     dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
-
-    bus = dbus.SessionBus()
+    bus = Openbmc.getDBus()
     name = dbus.service.BusName(DBUS_NAME, bus)
     obj = DownloadManagerObject(bus, OBJ_NAME)
     mainloop = gobject.MainLoop()
diff --git a/bin/flash_manager.py b/bin/flash_manager.py
index 980341b..43a1899 100644
--- a/bin/flash_manager.py
+++ b/bin/flash_manager.py
@@ -32,7 +32,6 @@
 				'interface_name' : 'org.openbmc.Flash'
 			}
 		}
-		bus = dbus.SessionBus()
 		bus.add_signal_receiver(self.UpdatedHandler, 
 			dbus_interface = "org.openbmc.Flash", signal_name = "Updated", path_keyword='path')
 
@@ -79,8 +78,7 @@
 
 if __name__ == '__main__':
     dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
-
-    bus = dbus.SessionBus()
+    bus = Openbmc.getDBus()
     name = dbus.service.BusName(DBUS_NAME, bus)
     obj = FlashManagerObject(bus, OBJ_NAME)
     mainloop = gobject.MainLoop()
diff --git a/bin/inventory_items.py b/bin/inventory_items.py
index 52bca0a..c8aa7fd 100644
--- a/bin/inventory_items.py
+++ b/bin/inventory_items.py
@@ -24,7 +24,12 @@
 
 class Inventory(dbus.service.Object):
 	def __init__(self,bus,name):
+		global FRU_PATH
 		dbus.service.Object.__init__(self,bus,name)
+		if not os.path.exists(FRU_PATH):
+   			os.makedirs(FRU_PATH)
+
+
 		self.objects = [ ]
 
 	def addItem(self,item):
@@ -110,14 +115,14 @@
 				for k in data2.keys():
 					self.item[k] = data2[k]
 			except Exception as e:
-				print "ERROR: " +str(e)
+				print "No cache file found: " +str(e)
 			finally:
 				p.close()
 
 
 if __name__ == '__main__':
     dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
-    bus = dbus.SessionBus()
+    bus = Openbmc.getDBus()
     name = dbus.service.BusName(DBUS_NAME,bus)
     mainloop = gobject.MainLoop()
     obj_parent = Inventory(bus, '/org/openbmc/managers/Inventory')
diff --git a/bin/ipmi_example.py b/bin/ipmi_example.py
index fc9123b..33847e5 100644
--- a/bin/ipmi_example.py
+++ b/bin/ipmi_example.py
@@ -39,7 +39,8 @@
 
 if __name__ == '__main__':
 	#dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
- 	bus = dbus.SessionBus()
+	bus = Openbmc.getDBus()
+
 	#name = dbus.service.BusName(DBUS_NAME,bus)
 	#mainloop = gobject.MainLoop()
 
diff --git a/bin/sensor_manager.py b/bin/sensor_manager.py
index 5b48437..9f3ab56 100644
--- a/bin/sensor_manager.py
+++ b/bin/sensor_manager.py
@@ -88,7 +88,7 @@
 				
 if __name__ == '__main__':
     dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
-    bus = dbus.SessionBus()
+    bus = Openbmc.getDBus()
     name = dbus.service.BusName(DBUS_NAME,bus)
     obj = SensorManager(bus,OBJ_NAME)
     mainloop = gobject.MainLoop()
diff --git a/bin/system_manager.py b/bin/system_manager.py
index 07de9c0..864688d 100644
--- a/bin/system_manager.py
+++ b/bin/system_manager.py
@@ -208,7 +208,7 @@
 
 if __name__ == '__main__':
     dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
-    bus = dbus.SessionBus()
+    bus = Openbmc.getDBus()
     name = dbus.service.BusName(DBUS_NAME,bus)
     obj = SystemManager(bus,OBJ_NAME)
     mainloop = gobject.MainLoop()
