diff --git a/objects/button_power_obj.c b/objects/button_power_obj.c
index 30078bb..93005a1 100644
--- a/objects/button_power_obj.c
+++ b/objects/button_power_obj.c
@@ -5,6 +5,7 @@
 
 /* ---------------------------------------------------------------------------------------------------- */
 static const gchar* dbus_object_path = "/org/openbmc/buttons";
+static const gchar* instance_name = "power0";
 static const gchar* dbus_name        = "org.openbmc.buttons.Power";
 
 static GDBusObjectManagerServer *manager = NULL;
@@ -37,9 +38,34 @@
                GIOCondition condition,
                gpointer user_data )
 {
-	Button* button = object_get_button((Object*)user_data);
-	printf("Power Button pressed\n");
-	button_emit_button_pressed(button);
+
+	GError *error = 0;
+	gsize bytes_read = 0;
+	gchar buf[2]; 
+	buf[1] = '\0';
+	g_io_channel_seek_position( channel, 0, G_SEEK_SET, 0 );
+	GIOStatus rc = g_io_channel_read_chars( channel,
+                                            buf, 1,
+                                            &bytes_read,
+                                            &error );
+	printf("%s\n",buf);
+	
+	if (gpio_button.irq_inited)
+	{
+		Button* button = object_get_button((Object*)user_data);
+		if (buf[0] == '0')
+		{
+			printf("Power Button pressed\n");
+			button_emit_button_pressed(button);
+		}
+		else
+		{
+			printf("Power Button released\n");
+		}
+	} 
+	else { gpio_button.irq_inited = true; }
+
+	return TRUE;
 }
 
 static void 
@@ -50,15 +76,10 @@
 	ObjectSkeleton *object;
 	//g_print ("Acquired a message bus connection: %s\n",name);
  	cmdline *cmd = user_data;
-	if (cmd->argc < 2)
-	{
-		g_print("No objects created.  Put object name(s) on command line\n");
-		return;
-	}	
   	manager = g_dbus_object_manager_server_new (dbus_object_path);
   	int i=0;
 	gchar *s;
-	s = g_strdup_printf ("%s/%s",dbus_object_path,cmd->argv[1]);
+	s = g_strdup_printf ("%s/%s",dbus_object_path,instance_name);
 	object = object_skeleton_new (s);
 	g_free (s);
 
