diff --git a/ChangeLog b/ChangeLog
index c0c5cd3..6fdf784 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -27,6 +27,9 @@
 	  in syntax higlighting. (David Benbennick).
 	- Fix justify failing for certain lines, new function 
 	  nano.c:breakable() (David Benbennick).
+	- Fix screen getting trashed on signals nano can catch
+	  (TERM and HUP).  New global variable curses_ended, 
+	  changes to winio.c:statubar() and nano.c:die().
 - cut.c:
   do_cut_text()
 	- Fix incorrect cursor location when cutting long lines
diff --git a/files.c b/files.c
index 26808a7..0fab49a 100644
--- a/files.c
+++ b/files.c
@@ -1339,7 +1339,8 @@
 	statusbar(_("Cancelled"));
 	return -1;
     }
-    titlebar(NULL);
+    if (!tmp)
+	titlebar(NULL);
     fileptr = fileage;
 
     realname = real_dir_from_tilde(name);
diff --git a/global.c b/global.c
index 9cda438..66ef3a7 100644
--- a/global.c
+++ b/global.c
@@ -147,6 +147,11 @@
 				   subexpressions, max of 10 */
 #endif
 
+int curses_ended = FALSE;	/* Indicates to statusbar() to simply
+				 * write to stderr, since endwin() has
+				 * ended curses mode. */
+
+
 int length_of_list(const shortcut *s) 
 {
     int i = 0;
diff --git a/nano.c b/nano.c
index 3286284..b87ec57 100644
--- a/nano.c
+++ b/nano.c
@@ -105,14 +105,12 @@
 {
     va_list ap;
 
+    endwin();
+    curses_ended = TRUE;
+
     /* Restore the old term settings */
     tcsetattr(0, TCSANOW, &oldterm);
 
-    clear();
-    refresh();
-    resetty();
-    endwin();
-
     va_start(ap, msg);
     vfprintf(stderr, msg, ap);
     va_end(ap);
@@ -2804,7 +2802,7 @@
 /* Handler for SIGHUP and SIGTERM */
 RETSIGTYPE handle_hupterm(int signal)
 {
-    die(_("Received SIGHUP or SIGTERM"));
+    die(_("Received SIGHUP or SIGTERM\n"));
 }
 
 /* What do we do when we catch the suspend signal */
diff --git a/proto.h b/proto.h
index 1ab4f4d..e572a85 100644
--- a/proto.h
+++ b/proto.h
@@ -115,6 +115,8 @@
 extern historyheadtype replace_history;
 #endif
 
+extern int curses_ended;
+
 /* Functions we want available */
 
 /* Public functions in color.c */
diff --git a/winio.c b/winio.c
index 740cf98..4e3e7b4 100644
--- a/winio.c
+++ b/winio.c
@@ -1355,10 +1355,19 @@
     int start_x = 0;
     size_t foo_len;
 
+    va_start(ap, msg);
+
+    /* Curses mode is turned off.  If we use wmove() now, it will muck up
+       the terminal settings.  So we just use vfprintf(). */
+    if (curses_ended) {
+	vfprintf(stderr, msg, ap);
+	va_end(ap);
+	return;
+    }
+
     assert(COLS >= 4);
     foo = charalloc(COLS - 3);
 
-    va_start(ap, msg);
     vsnprintf(foo, COLS - 3, msg, ap);
     va_end(ap);
 
