diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index eadf4938f74..e669e098f67 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2015-04-28  Patrick Palka  <patrick@parcs.ath.cx>
+
+	* tui/tui-win.c (tui_sigwinch_handler): Remove now-stale comment.
+	(tui_sigwinch_handler): Still update our idea of
+	the terminal's width and height even when TUI is not active.
+
 2015-04-28  Patrick Palka  <patrick@parcs.ath.cx>
 
 	* utils.h (set_screen_width_and_height): Declare.
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
index 68309771764..683c0eda33e 100644
--- a/gdb/tui/tui-win.c
+++ b/gdb/tui/tui-win.c
@@ -836,12 +836,6 @@ static struct async_signal_handler *tui_sigwinch_token;
 static void
 tui_sigwinch_handler (int signal)
 {
-  /* Set win_resized to TRUE and asynchronously invoke our resize callback.  If
-     the callback is invoked while TUI is active then it ought to successfully
-     resize the screen, resetting win_resized to FALSE.  Of course, if the
-     callback is invoked while TUI is inactive then it will do nothing; in that
-     case, win_resized will remain TRUE until we get a chance to synchronously
-     resize the screen from tui_enable().  */
   mark_async_signal_handler (tui_sigwinch_token);
   tui_set_win_resized_to (TRUE);
 }
@@ -850,15 +844,26 @@ tui_sigwinch_handler (int signal)
 static void
 tui_async_resize_screen (gdb_client_data arg)
 {
-  if (!tui_active)
-    return;
-
   rl_resize_terminal ();
-  tui_resize_all ();
-  tui_refresh_all_win ();
-  tui_update_gdb_sizes ();
-  tui_set_win_resized_to (FALSE);
-  tui_redisplay_readline ();
+
+  if (!tui_active)
+    {
+      int screen_height, screen_width;
+
+      rl_get_screen_size (&screen_height, &screen_width);
+      set_screen_width_and_height (screen_width, screen_height);
+
+      /* win_resized is left set so that the next call to tui_enable()
+	 resizes the TUI windows.  */
+    }
+  else
+    {
+      tui_resize_all ();
+      tui_refresh_all_win ();
+      tui_update_gdb_sizes ();
+      tui_set_win_resized_to (FALSE);
+      tui_redisplay_readline ();
+    }
 }
 #endif