diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac
--- Python-2.7.9-orig/configure.ac	2014-12-11 13:50:50.996600000 +0300
+++ Python-2.7.9/configure.ac	2014-12-11 13:51:02.103800000 +0300
@@ -4928,18 +4928,54 @@
 # [n]curses.h, ncurses will expose fields of the structs regardless of the
 # configuration.
 AC_MSG_CHECKING(whether WINDOW has _flags)
-AC_CACHE_VAL(ac_cv_window_has_flags,
 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
   #define NCURSES_OPAQUE 0
   #include <curses.h>
 ]], [[
   WINDOW *w;
   w->_flags = 0;
 ]])],
 [ac_cv_window_has_flags=yes],
-[ac_cv_window_has_flags=no]))
+[ac_cv_window_has_flags=no])
 AC_MSG_RESULT($ac_cv_window_has_flags)
 
+py_curses_window_is_opaque=no
+if test no = $ac_cv_window_has_flags; then
+  AC_MSG_CHECKING([whether WINDOW has _flags in non-opaque structure])
+  AC_COMPILE_IFELSE([
+  AC_LANG_PROGRAM([[
+    #define NCURSES_OPAQUE 0
+    #include <curses.h>
+  ]],[[
+    WINDOW *w;
+    w->_flags = 0;
+  ]])],
+  [py_curses_window_is_opaque=yes])
+  AC_MSG_RESULT([$py_curses_window_is_opaque])
+fi
+if test yes = $py_curses_window_is_opaque; then
+  ac_cv_window_has_flags=yes
+  AC_DEFINE([NCURSES_OPAQUE], [0], [Define to 0 if you have WINDOW _flags in non-opaque structure.])
+fi
+
+py_curses_window_is_internal=no
+if test no = $ac_cv_window_has_flags; then
+  AC_MSG_CHECKING([whether WINDOW has _flags as internal structure])
+  AC_COMPILE_IFELSE([
+  AC_LANG_PROGRAM([[
+    #define NCURSES_INTERNALS 1
+    #include <curses.h>
+  ]],[[
+    WINDOW *w;
+    w->_flags = 0;
+  ]])],
+  [py_curses_window_is_internal=yes])
+  AC_MSG_RESULT([$py_curses_window_is_internal])
+fi
+if test yes = $py_curses_window_is_internal; then
+  ac_cv_window_has_flags=yes
+  AC_DEFINE([NCURSES_INTERNALS], [1], [Define to 1 if you have WINDOW _flags as internal structure.])
+fi
 
 if test "$ac_cv_window_has_flags" = yes
 then
diff -Naur Python-2.7.15-orig/Include/py_curses.h Python-2.7.15/Include/py_curses.h
--- Python-2.7.15-orig/Include/py_curses.h	2014-12-10 18:59:32.000000000 +0300
+++ Python-2.7.15/Include/py_curses.h	2014-12-11 13:51:02.103800000 +0300
@@ -14,7 +14,9 @@
 /* The following definition is necessary for ncurses 5.7; without it,
    some of [n]curses.h set NCURSES_OPAQUE to 1, and then Python
    can't get at the WINDOW flags field. */
+/* NOTE configure check if ncurses require such definition
 #define NCURSES_OPAQUE 0
+*/
 #endif
 
 #ifdef HAVE_NCURSES_H
@@ -57,9 +59,12 @@
 #ifdef HAVE_NCURSES_H
 /* configure was checking <curses.h>, but we will
    use <ncurses.h>, which has some or all these features. */
+/* NOTE configure check for existence of flags
+ * Also flags are visible only if WINDOW structure is not opaque
 #if !defined(WINDOW_HAS_FLAGS) && !(NCURSES_OPAQUE+0)
 #define WINDOW_HAS_FLAGS 1
 #endif
+*/
 #if !defined(HAVE_CURSES_IS_PAD) && NCURSES_VERSION_PATCH+0 >= 20090906
 #define HAVE_CURSES_IS_PAD 1
 #endif
diff -Naur Python-2.7.9-orig/pyconfig.h.in Python-2.7.9/pyconfig.h.in
--- Python-2.7.9-orig/pyconfig.h.in	2014-12-11 13:50:34.460600000 +0300
+++ Python-2.7.9/pyconfig.h.in	2014-12-11 13:51:02.103800000 +0300
@@ -945,6 +945,12 @@
 /* Define to 1 if you want to use native NT threads */
 #undef NT_THREADS
 
+/* Define to 1 if you have WINDOW _flags as internal structure. */
+#undef NCURSES_INTERNALS
+
+/* Define to 0 if you have WINDOW _flags in non-opaque structure. */
+#undef NCURSES_OPAQUE
+
 /* Define to the address where bug reports for this package should be sent. */
 #undef PACKAGE_BUGREPORT
 
