add confirmations to anything that would change the system.
diff --git a/extendedcommands.c b/extendedcommands.c
index aa9cbc6..f09f24e 100644
--- a/extendedcommands.c
+++ b/extendedcommands.c
@@ -105,8 +105,11 @@
                 toggle_signature_check();
                 break;
             case ITEM_APPLY_SDCARD:
-                install_zip(SDCARD_PACKAGE_FILE);
+            {
+                if (confirm_selection("Confirm install?", "Yes - Install /sdcard/update.zip"))
+                    install_zip(SDCARD_PACKAGE_FILE);
                 break;
+            }
             case ITEM_CHOOSE_ZIP:
                 show_choose_zip_menu();
                 break;
@@ -316,7 +319,11 @@
     char sdcard_package_file[1024];
     strcpy(sdcard_package_file, "SDCARD:");
     strcat(sdcard_package_file,  file + strlen("/sdcard/"));
-    install_zip(sdcard_package_file);
+    static char* confirm_install  = "Confirm install?";
+    static char confirm[PATH_MAX];
+    sprintf(confirm, "Yes - Install %s", basename(file));
+    if (confirm_selection(confirm_install, confirm))
+        install_zip(sdcard_package_file);
 }
 
 // This was pulled from bionic: The default system command always looks
@@ -375,7 +382,9 @@
     char* file = choose_file_menu("/sdcard/clockworkmod/backup/", NULL, headers);
     if (file == NULL)
         return;
-    nandroid_restore(file, 1, 1, 1, 1, 1);
+
+    if (confirm_selection("Confirm restore?", "Yes - Restore"))
+        nandroid_restore(file, 1, 1, 1, 1, 1);
 }
 
 void show_mount_usb_storage_menu()
@@ -403,22 +412,23 @@
     __system("echo 0 > /sys/devices/platform/usb_mass_storage/lun0/enable");
 }
 
-int confirm_selection(char* title_headers[], char* confirm)
+int confirm_selection(const char* title, const char* confirm)
 {
-    char* items[] = { " No",
-                      " No",
-                      " No",
-                      " No",
-                      " No",
-                      " No",
-                      " No",
+    char* confirm_headers[]  = {  title, "  THIS CAN NOT BE UNDONE.", "", NULL };
+    char* items[] = { "No",
+                      "No",
+                      "No",
+                      "No",
+                      "No",
+                      "No",
+                      "No",
                       confirm, //" Yes -- wipe partition",   // [7
-                      " No",
-                      " No",
-                      " No",
+                      "No",
+                      "No",
+                      "No",
                       NULL };
 
-    int chosen_item = get_menu_selection(title_headers, items, 0);
+    int chosen_item = get_menu_selection(confirm_headers, items, 0);
     return chosen_item == 7;
 }
 
@@ -486,11 +496,7 @@
       { "format sd-ext", "SDEXT:" }  
     };
     
-    static char* confirm_format[]  = {  "Confirm format?",
-                                        "  THIS CAN NOT BE UNDONE.",
-                                        "",
-                                        NULL,
-                                    };
+    static char* confirm_format  = "Confirm format?";
     static char* confirm = "Yes - Format";
         
     for (;;)
@@ -695,23 +701,31 @@
                             NULL
     };
 
+
+    static char* confirm_restore  = "Confirm restore?";
+
     int chosen_item = get_menu_selection(headers, list, 0);
     switch (chosen_item)
     {
         case 0:
-            nandroid_restore(file, 1, 0, 0, 0, 0);
+            if (confirm_selection(confirm_restore, "Yes - Restore boot"))
+                nandroid_restore(file, 1, 0, 0, 0, 0);
             break;
         case 1:
-            nandroid_restore(file, 0, 1, 0, 0, 0);
+            if (confirm_selection(confirm_restore, "Yes - Restore system"))
+                nandroid_restore(file, 0, 1, 0, 0, 0);
             break;
         case 2:
-            nandroid_restore(file, 0, 0, 1, 0, 0);
+            if (confirm_selection(confirm_restore, "Yes - Restore data"))
+                nandroid_restore(file, 0, 0, 1, 0, 0);
             break;
         case 3:
-            nandroid_restore(file, 0, 0, 0, 1, 0);
+            if (confirm_selection(confirm_restore, "Yes - Restore cache"))
+                nandroid_restore(file, 0, 0, 0, 1, 0);
             break;
         case 4:
-            nandroid_restore(file, 0, 0, 0, 0, 1);
+            if (confirm_selection(confirm_restore, "Yes - Restore sd-ext"))
+                nandroid_restore(file, 0, 0, 0, 0, 1);
             break;
     }
 }
@@ -792,14 +806,20 @@
                 __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_RESTART2, "recovery");
                 break;
             case 1:
+            {
                 if (0 != ensure_root_path_mounted("DATA:"))
                     break;
-                __system("rm -r /data/dalvik-cache");
+                if (confirm_selection( "Confirm wipe?", "Yes - Wipe Dalvik Cache"))
+                    __system("rm -r /data/dalvik-cache");
                 ensure_root_path_unmounted("DATA:");
                 break;
+            }
             case 2:
-                wipe_battery_stats();
+            {
+                if (confirm_selection( "Confirm wipe?", "Yes - Wipe Battery Stats"))
+                    wipe_battery_stats();
                 break;
+            }
             case 3:
                 handle_failure(1);
                 break;
diff --git a/recovery.c b/recovery.c
index 34e02ab..b0123db 100644
--- a/recovery.c
+++ b/recovery.c
@@ -363,11 +363,11 @@
             if (wrap_count == 3) {
                 wrap_count = 0;
                 if (ui_get_showing_back_button()) {
-                    ui_print("Back button disabled.\n");
+                    ui_print("Back menu button disabled.\n");
                     ui_set_showing_back_button(0);
                 }
                 else {
-                    ui_print("Back button enabled.\n");
+                    ui_print("Back menu button enabled.\n");
                     ui_set_showing_back_button(1);
                 }
             }
@@ -451,27 +451,33 @@
                 break;
 
             case ITEM_WIPE_CACHE:
-                ui_print("\n-- Wiping cache...\n");
-                erase_root("CACHE:");
-                ui_print("Cache wipe complete.\n");
-                if (!ui_text_visible()) return;
+                if (confirm_selection("Confirm wipe?", "Yes - Wipe Cache"))
+                {
+                    ui_print("\n-- Wiping cache...\n");
+                    erase_root("CACHE:");
+                    ui_print("Cache wipe complete.\n");
+                    if (!ui_text_visible()) return;
+                }
                 break;
 
             case ITEM_APPLY_SDCARD:
-                ui_print("\n-- Install from sdcard...\n");
-                set_sdcard_update_bootloader_message();
-                int status = install_package(SDCARD_PACKAGE_FILE);
-                if (status != INSTALL_SUCCESS) {
-                    ui_set_background(BACKGROUND_ICON_ERROR);
-                    ui_print("Installation aborted.\n");
-                } else if (!ui_text_visible()) {
-                    return;  // reboot if logs aren't visible
-                } else {
-                    if (firmware_update_pending()) {
-                        ui_print("\nReboot via menu to complete\n"
-                                 "installation.\n");
+                if (confirm_selection("Confirm install?", "Yes - Install /sdcard/update.zip"))
+                {
+                    ui_print("\n-- Install from sdcard...\n");
+                    set_sdcard_update_bootloader_message();
+                    int status = install_package(SDCARD_PACKAGE_FILE);
+                    if (status != INSTALL_SUCCESS) {
+                        ui_set_background(BACKGROUND_ICON_ERROR);
+                        ui_print("Installation aborted.\n");
+                    } else if (!ui_text_visible()) {
+                        return;  // reboot if logs aren't visible
                     } else {
-                        ui_print("\nInstall from sdcard complete.\n");
+                        if (firmware_update_pending()) {
+                            ui_print("\nReboot via menu to complete\n"
+                                     "installation.\n");
+                        } else {
+                            ui_print("\nInstall from sdcard complete.\n");
+                        }
                     }
                 }
                 break;