diff --git a/.config b/.config
index ed254b3..f8091c9 100644
--- a/.config
+++ b/.config
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
 # Linux kernel version: 2.6.29-rc3
-# Sat Aug 28 12:38:36 2010
+# Thu Sep  9 09:41:05 2010
 #
 CONFIG_ARM=y
 CONFIG_HAVE_PWM=y
@@ -358,9 +358,12 @@ CONFIG_HAVE_AOUT=y
 # Power management options
 #
 CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
+CONFIG_PM_DEBUG=y
+CONFIG_PM_VERBOSE=y
+CONFIG_CAN_PM_TRACE=y
 CONFIG_PM_SLEEP=y
 CONFIG_SUSPEND=y
+# CONFIG_PM_TEST_SUSPEND is not set
 CONFIG_SUSPEND_FREEZER=y
 CONFIG_APM_EMULATION=y
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
diff --git a/arch/arm/mach-s3c2442/mach-gta02.c b/arch/arm/mach-s3c2442/mach-gta02.c
index 380effa..184a109 100644
--- a/arch/arm/mach-s3c2442/mach-gta02.c
+++ b/arch/arm/mach-s3c2442/mach-gta02.c
@@ -1725,9 +1725,14 @@ void DEBUG_LED(int n)
 //	int *p = NULL;
 	switch (n) {
 	case 0:
-		neo1973_gpb_setpin(GTA02_GPIO_PWR_LED1, 1);
+		neo1973_gpb_setpin(GTA02_GPIO_PWR_LED1, 0);
+		neo1973_gpb_setpin(GTA02_GPIO_PWR_LED2, 0);
+		neo1973_gpb_setpin(GTA02_GPIO_AUX_LED, 0);
 		break;
 	case 1:
+		neo1973_gpb_setpin(GTA02_GPIO_PWR_LED1, 1);
+		break;
+	case 2:
 		neo1973_gpb_setpin(GTA02_GPIO_PWR_LED2, 1);
 		break;
 	default:
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
index 3098c46..41860d3 100644
--- a/drivers/base/power/main.c
+++ b/drivers/base/power/main.c
@@ -253,8 +253,11 @@ static char *pm_verb(int event)
 	}
 }
 
+extern int pm_counter;
+
 static void pm_dev_dbg(struct device *dev, pm_message_t state, char *info)
 {
+	printk(KERN_ERR "pm_counter %d\n", pm_counter);
 	dev_dbg(dev, "%s%s%s\n", info, pm_verb(state.event),
 		((state.event & PM_EVENT_SLEEP) && device_may_wakeup(dev)) ?
 		", may wakeup" : "");
diff --git a/kernel/printk.c b/kernel/printk.c
index ca33b20..68d4956 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -633,6 +633,17 @@ static int recursion_bug;
 static int new_text_line = 1;
 static char printk_buf[1024];
 
+static inline void debug_delay(int m)
+{
+	while (m--) {
+		mdelay(1);
+		touch_nmi_watchdog();
+	}
+}
+
+extern void DEBUG_LED(int n);
+int pm_counter;
+
 asmlinkage int vprintk(const char *fmt, va_list args)
 {
 	int printed_len = 0;
@@ -640,9 +651,38 @@ asmlinkage int vprintk(const char *fmt, va_list args)
 	unsigned long flags;
 	int this_cpu;
 	char *p;
+	int i;
+	int led;
 
 	boot_delay_msec();
 
+	if(strstr(fmt, "PM: Entering")) {
+		pm_counter = 10;
+	}
+
+	if(strstr(fmt, "pm_counter")) {
+	  debug_delay(2000);
+	  for(i = 0; i < ((pm_counter / 100) % 10); i++) {
+		  DEBUG_LED(3);
+		  debug_delay(100);
+		  DEBUG_LED(0);
+		  debug_delay(100);
+	  }
+	  for(i = 0; i < ((pm_counter / 10) % 10); i++) {
+		  DEBUG_LED(2);
+		  debug_delay(100);
+		  DEBUG_LED(0);
+		  debug_delay(100);
+	  }
+	  for(i = 0; i < (pm_counter % 10); i++) {
+		  DEBUG_LED(1);
+		  debug_delay(100);
+		  DEBUG_LED(0);
+		  debug_delay(100);
+	  }
+	  pm_counter++;
+	}
+
 	preempt_disable();
 	/* This stops the holder of console_sem just where we want him */
 	raw_local_irq_save(flags);

