diff --git a/extendedcommands.c b/extendedcommands.c
index 2acc0d6..36467b0 100644
--- a/extendedcommands.c
+++ b/extendedcommands.c
@@ -593,4 +593,40 @@
             show_nandroid_restore_menu();
             break;
     }
+}
+
+void show_advanced_menu()
+{
+    static char* headers[] = {  "Advanced and Debugging Menu",
+                                "",
+                                NULL
+    };
+
+    static char* list[] = { "Key Test",
+                            NULL
+    };
+
+    for (;;)
+    {
+        int chosen_item = get_menu_selection(headers, list, 0);
+        if (chosen_item == GO_BACK)
+            break;
+        switch (chosen_item)
+        {
+            case 0:
+            {
+                ui_print("Outputting key codes.\n");
+                ui_print("Go back to end debugging.\n");
+                int key;
+                int action;
+                do
+                {
+                    key = ui_wait_key();
+                    action = device_handle_key(key, 1);
+                    ui_print("Key: %d\n", key);
+                }
+                while (action != GO_BACK);
+            }
+        }
+    }
 }
\ No newline at end of file
diff --git a/extendedcommands.h b/extendedcommands.h
index 9de8180..1223fcd 100644
--- a/extendedcommands.h
+++ b/extendedcommands.h
@@ -33,3 +33,6 @@
 
 int
 __system(const char *command);
+
+void
+show_advanced_menu();
diff --git a/recovery.c b/recovery.c
index d1e96f5..0464147 100644
--- a/recovery.c
+++ b/recovery.c
@@ -451,16 +451,9 @@
             case ITEM_PARTITION:
                 show_partition_menu();
                 break;
-                /*
-            case ITEM_MOUNT_SDCARD:
-                if (ensure_root_path_mounted("SDCARD:") != 0) {
-                    LOGE ("Can't mount /sdcard\n");
-                }    
+            case ITEM_ADVANCED:
+                show_advanced_menu();
                 break;
-            case ITEM_MOUNT_USB:
-                do_mount_usb_storage();
-                break;
-                */
         }
     }
 }
diff --git a/recovery_ui.h b/recovery_ui.h
index 55fe40f..daf01eb 100644
--- a/recovery_ui.h
+++ b/recovery_ui.h
@@ -70,6 +70,7 @@
 #define ITEM_INSTALL_ZIP     4
 #define ITEM_NANDROID        5
 #define ITEM_PARTITION       6
+#define ITEM_ADVANCED        7
 
 // Header text to display above the main menu.
 extern char* MENU_HEADERS[];
