Test curses.setupterm() before initscr().
diff --git a/Lib/test/test_curses.py b/Lib/test/test_curses.py
index 419d8fc..a4a45a7 100644
--- a/Lib/test/test_curses.py
+++ b/Lib/test/test_curses.py
@@ -173,7 +173,6 @@
     curses.qiflush()
     curses.raw() ; curses.raw(1)
     curses.setsyx(5,5)
-    curses.setupterm(fd=sys.__stdout__.fileno())
     curses.tigetflag('hc')
     curses.tigetnum('co')
     curses.tigetstr('cr')
@@ -239,12 +238,14 @@
     finally:
         curses.resetty()
 
-
 if __name__ == '__main__':
     curses.wrapper(main)
     unit_tests()
 else:
     try:
+        # testing setupterm() inside initscr/endwin
+        # causes terminal breakage
+        curses.setupterm(fd=sys.__stdout__.fileno())
         stdscr = curses.initscr()
         main(stdscr)
     finally: