#1940: make it possible to use curses.filter() before curses.initscr()
as the documentation says.
diff --git a/Misc/NEWS b/Misc/NEWS
index d883038..1603418 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -1103,9 +1103,13 @@
   does not claim to support starttls.  Adds the SMTP.ehlo_or_helo_if_needed()
   method.  Patch contributed by Bill Fenner.
 
+
 Extension Modules
 -----------------
 
+- #1940: make it possible to use curses.filter() before curses.initscr()
+  as the documentation says.
+
 - Backport of _fileio module from Python 3.0.
 
 - #1087741: mmap.mmap is now a class, not a factory function. It is also
diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index 246e871..137c580 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -1677,11 +1677,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;