#1940: make it possible to use curses.filter() before curses.initscr()
as the documentation says.
 (backport from rev. 60322)
diff --git a/Misc/NEWS b/Misc/NEWS
index 4913c79..f892f4d 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -212,6 +212,9 @@
 Extension Modules
 -----------------
 
+- #1940: make it possible to use curses.filter() before curses.initscr()
+  as the documentation says.
+
 - Fix a potential 'SystemError: NULL result without error' in _ctypes.
 
 - Prevent a segfault when a ctypes NULL function pointer is called.
diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index 1f6a426..12b496f 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -1619,11 +1619,20 @@
 NoArgTrueFalseFunction(has_ic)
 NoArgTrueFalseFunction(has_il)
 NoArgTrueFalseFunction(isendwin)
-NoArgNoReturnVoidFunction(filter)
 NoArgNoReturnVoidFunction(flushinp)
 NoArgNoReturnVoidFunction(noqiflush)
 
 static PyObject *
+PyCurses_filter(PyObject *self)
+{
+  /* not checking for PyCursesInitialised here since filter() must
+     be called before initscr() */
+  filter();
+  Py_INCREF(Py_None);
+  return Py_None;
+}
+
+static PyObject *
 PyCurses_Color_Content(PyObject *self, PyObject *args)
 {
   short color,r,g,b;