+2008-09-05  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * target.c (update_current_target): Do not inherit to_open
+       or to_close.
+       (pop_target): Call target_close on target_stack instead
+       of current_target.
+       (pop_all_targets_above): Likewise.
+
 2008-09-05  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * gnu-v3-abi.c (gnuv3_decode_method_ptr): New function.
 
       INHERIT (to_shortname, t);
       INHERIT (to_longname, t);
       INHERIT (to_doc, t);
-      INHERIT (to_open, t);
-      INHERIT (to_close, t);
+      /* Do not inherit to_open.  */
+      /* Do not inherit to_close.  */
       INHERIT (to_attach, t);
       INHERIT (to_post_attach, t);
       INHERIT (to_attach_no_wait, t);
 void
 pop_target (void)
 {
-  target_close (¤t_target, 0);   /* Let it clean up */
+  target_close (target_stack, 0);      /* Let it clean up */
   if (unpush_target (target_stack) == 1)
     return;
 
 {
   while ((int) (current_target.to_stratum) > (int) above_stratum)
     {
-      target_close (¤t_target, quitting);
+      target_close (target_stack, quitting);
       if (!unpush_target (target_stack))
        {
          fprintf_unfiltered (gdb_stderr,
                              "pop_all_targets couldn't find target %s\n",
-                             current_target.to_shortname);
+                             target_stack->to_shortname);
          internal_error (__FILE__, __LINE__,
                          _("failed internal consistency check"));
          break;