acpi_gbl_method_executing = FALSE;
 
        if (ACPI_FAILURE(status)) {
+               if ((status == AE_ABORT_METHOD) || acpi_gbl_abort_method) {
+
+                       /* Clear the abort and fall back to the debugger prompt */
+
+                       ACPI_EXCEPTION((AE_INFO, status,
+                                       "Aborting top-level method"));
+
+                       acpi_gbl_abort_method = FALSE;
+                       status = AE_OK;
+                       goto cleanup;
+               }
+
                ACPI_EXCEPTION((AE_INFO, status,
                                "while executing %s from debugger",
                                info->pathname));
 
 acpi_ds_method_error(acpi_status status, struct acpi_walk_state *walk_state)
 {
        u32 aml_offset;
+       acpi_name name = 0;
 
        ACPI_FUNCTION_ENTRY();
 
                                                walk_state->parser_state.
                                                aml_start);
 
-               status = acpi_gbl_exception_handler(status,
-                                                   walk_state->method_node ?
-                                                   walk_state->method_node->
-                                                   name.integer : 0,
+               if (walk_state->method_node) {
+                       name = walk_state->method_node->name.integer;
+               } else if (walk_state->deferred_node) {
+                       name = walk_state->deferred_node->name.integer;
+               }
+
+               status = acpi_gbl_exception_handler(status, name,
                                                    walk_state->opcode,
                                                    aml_offset, NULL);
                acpi_ex_enter_interpreter();
 
 #include "acdispat.h"
 #include "amlcode.h"
 #include "acinterp.h"
+#include "acnamesp.h"
 
 #define _COMPONENT          ACPI_PARSER
 ACPI_MODULE_NAME("psparse")
                        /* Either the method parse or actual execution failed */
 
                        acpi_ex_exit_interpreter();
-                       ACPI_ERROR_METHOD("Method parse/execution failed",
-                                         walk_state->method_node, NULL,
-                                         status);
+                       if (status == AE_ABORT_METHOD) {
+                               acpi_ns_print_node_pathname(walk_state->
+                                                           method_node,
+                                                           "Method aborted:");
+                               acpi_os_printf("\n");
+                       } else {
+                               ACPI_ERROR_METHOD
+                                   ("Method parse/execution failed",
+                                    walk_state->method_node, NULL, status);
+                       }
                        acpi_ex_enter_interpreter();
 
                        /* Check for possible multi-thread reentrancy problem */