diff --git a/dgamelaunch.c b/dgamelaunch.c
index f551f92..c86299d 100644
--- a/dgamelaunch.c
+++ b/dgamelaunch.c
@@ -1394,6 +1394,7 @@ freefile ()
 void
 initcurses ()
 {
+  printf("\033[2J");
   initscr ();
   cbreak ();
   noecho ();
@@ -1406,6 +1407,8 @@ initcurses ()
   init_pair(1, -1, -1);
   init_pair(2, COLOR_RED, -1);
 #endif
+  clear();
+  refresh();
 }
 
 /* ************************************************************* */
@@ -1996,7 +1999,6 @@ editoptions (int game)
     waitpid(editor, NULL, 0);
 
   initcurses();
-  refresh ();
   check_retard(1);
 }
 
diff --git a/dgl-common.c b/dgl-common.c
index d004f4a..ad8cd63 100644
--- a/dgl-common.c
+++ b/dgl-common.c
@@ -82,7 +82,6 @@ term_resize_check()
 
     endwin();
     initcurses();
-    refresh();
     dgl_local_COLS = COLS;
     dgl_local_LINES = LINES;
     curses_resize = 0;
@@ -279,8 +278,6 @@ dgl_exec_cmdqueue(struct dg_cmdpart *queue, int game, struct dg_user *me)
 		    waitpid(child, NULL, 0);
 		idle_alarm_set_enabled(1);
 		initcurses();
-		clear();
-		refresh();
 		check_retard(1);
 	    }
 	    break;
@@ -379,8 +376,6 @@ dgl_exec_cmdqueue(struct dg_cmdpart *queue, int game, struct dg_user *me)
 
 			    setproctitle ("%s", me->username);
 			    initcurses ();
-			    clear();
-			    refresh();
 			    check_retard(1); /* reset retard counter */
 			}
 			break;