diff --git a/gdb/inf-child.c b/gdb/inf-child.c
index 6d95e5e..9867ee6 100644
--- a/gdb/inf-child.c
+++ b/gdb/inf-child.c
@@ -481,7 +481,6 @@ inf_child_target (void)
   t->to_terminal_init = child_terminal_init;
   t->to_terminal_inferior = child_terminal_inferior;
   t->to_terminal_ours_for_output = child_terminal_ours_for_output;
-  t->to_terminal_save_ours = child_terminal_save_ours;
   t->to_terminal_ours = child_terminal_ours;
   t->to_terminal_info = child_terminal_info;
   t->to_post_startup_inferior = inf_child_post_startup_inferior;
diff --git a/gdb/inferior.h b/gdb/inferior.h
index afc29e2..269b6af 100644
--- a/gdb/inferior.h
+++ b/gdb/inferior.h
@@ -110,7 +110,7 @@ extern void child_terminal_info (struct target_ops *self, const char *, int);
 
 extern void term_info (char *, int);
 
-extern void child_terminal_save_ours (struct target_ops *self);
+extern void gdb_save_tty_state (void);
 
 extern void child_terminal_ours (struct target_ops *self);
 
diff --git a/gdb/inflow.c b/gdb/inflow.c
index 4b105d1..8902174 100644
--- a/gdb/inflow.c
+++ b/gdb/inflow.c
@@ -241,7 +241,7 @@ child_terminal_init_with_pgrp (int pgrp)
    and gdb must be able to restore it correctly.  */
 
 void
-child_terminal_save_ours (struct target_ops *self)
+gdb_save_tty_state (void)
 {
   if (gdb_has_a_terminal ())
     {
diff --git a/gdb/target-delegates.c b/gdb/target-delegates.c
index 843a954..fe989ff 100644
--- a/gdb/target-delegates.c
+++ b/gdb/target-delegates.c
@@ -813,28 +813,6 @@ debug_terminal_ours (struct target_ops *self)
 }
 
 static void
-delegate_terminal_save_ours (struct target_ops *self)
-{
-  self = self->beneath;
-  self->to_terminal_save_ours (self);
-}
-
-static void
-tdefault_terminal_save_ours (struct target_ops *self)
-{
-}
-
-static void
-debug_terminal_save_ours (struct target_ops *self)
-{
-  fprintf_unfiltered (gdb_stdlog, "-> %s->to_terminal_save_ours (...)\n", debug_target.to_shortname);
-  debug_target.to_terminal_save_ours (&debug_target);
-  fprintf_unfiltered (gdb_stdlog, "<- %s->to_terminal_save_ours (", debug_target.to_shortname);
-  target_debug_print_struct_target_ops_p (&debug_target);
-  fputs_unfiltered (")\n", gdb_stdlog);
-}
-
-static void
 delegate_terminal_info (struct target_ops *self, const char *arg1, int arg2)
 {
   self = self->beneath;
@@ -3814,8 +3792,6 @@ install_delegators (struct target_ops *ops)
     ops->to_terminal_ours_for_output = delegate_terminal_ours_for_output;
   if (ops->to_terminal_ours == NULL)
     ops->to_terminal_ours = delegate_terminal_ours;
-  if (ops->to_terminal_save_ours == NULL)
-    ops->to_terminal_save_ours = delegate_terminal_save_ours;
   if (ops->to_terminal_info == NULL)
     ops->to_terminal_info = delegate_terminal_info;
   if (ops->to_kill == NULL)
@@ -4068,7 +4044,6 @@ install_dummy_methods (struct target_ops *ops)
   ops->to_terminal_inferior = tdefault_terminal_inferior;
   ops->to_terminal_ours_for_output = tdefault_terminal_ours_for_output;
   ops->to_terminal_ours = tdefault_terminal_ours;
-  ops->to_terminal_save_ours = tdefault_terminal_save_ours;
   ops->to_terminal_info = default_terminal_info;
   ops->to_kill = tdefault_kill;
   ops->to_load = tdefault_load;
@@ -4212,7 +4187,6 @@ init_debug_target (struct target_ops *ops)
   ops->to_terminal_inferior = debug_terminal_inferior;
   ops->to_terminal_ours_for_output = debug_terminal_ours_for_output;
   ops->to_terminal_ours = debug_terminal_ours;
-  ops->to_terminal_save_ours = debug_terminal_save_ours;
   ops->to_terminal_info = debug_terminal_info;
   ops->to_kill = debug_kill;
   ops->to_load = debug_load;
diff --git a/gdb/target.h b/gdb/target.h
index 4d91b6b..85763ba 100644
--- a/gdb/target.h
+++ b/gdb/target.h
@@ -506,8 +506,6 @@ struct target_ops
       TARGET_DEFAULT_IGNORE ();
     void (*to_terminal_ours) (struct target_ops *)
       TARGET_DEFAULT_IGNORE ();
-    void (*to_terminal_save_ours) (struct target_ops *)
-      TARGET_DEFAULT_IGNORE ();
     void (*to_terminal_info) (struct target_ops *, const char *, int)
       TARGET_DEFAULT_FUNC (default_terminal_info);
     void (*to_kill) (struct target_ops *)
@@ -1417,14 +1415,6 @@ extern void target_terminal_inferior (void);
 
 extern int target_supports_terminal_ours (void);
 
-/* Save our terminal settings.
-   This is called from TUI after entering or leaving the curses
-   mode.  Since curses modifies our terminal this call is here
-   to take this change into account.  */
-
-#define target_terminal_save_ours() \
-     (*current_target.to_terminal_save_ours) (&current_target)
-
 /* Print useful information about our terminal status, if such a thing
    exists.  */
 
diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c
index 7add8ba..f16c9be 100644
--- a/gdb/tui/tui.c
+++ b/gdb/tui/tui.c
@@ -425,7 +425,7 @@ tui_enable (void)
   tui_refresh_all_win ();
 
   /* Update gdb's knowledge of its terminal.  */
-  target_terminal_save_ours ();
+  gdb_save_tty_state ();
   tui_update_gdb_sizes ();
 }
 
@@ -455,7 +455,7 @@ tui_disable (void)
   tui_setup_io (0);
 
   /* Update gdb's knowledge of its terminal.  */
-  target_terminal_save_ours ();
+  gdb_save_tty_state ();
 
   tui_active = 0;
   tui_update_gdb_sizes ();
