Warn abou missing mutate flag to ioctl. Fixes #696535.
diff --git a/Doc/whatsnew/whatsnew24.tex b/Doc/whatsnew/whatsnew24.tex
index a394971..638eadb 100644
--- a/Doc/whatsnew/whatsnew24.tex
+++ b/Doc/whatsnew/whatsnew24.tex
@@ -669,6 +669,8 @@
   system ID in the wrong order.  This has been corrected; applications
   relying on the wrong order need to be fixed.
 
+\item \function{fcntl.ioctl} now warns if the mutate arg is omitted.
+
 \end{itemize}
 
 
diff --git a/Misc/NEWS b/Misc/NEWS
index a4dd8a1..304c3be 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -214,6 +214,8 @@
 Extension modules
 -----------------
 
+- fcntl.ioctl now warns if the mutate flag is not specified.
+
 - nt now properly allows to refer to UNC roots, e.g. in nt.stat().
 
 - the weakref module now supports additional objects:  array.array,
diff --git a/Modules/fcntlmodule.c b/Modules/fcntlmodule.c
index 9894c43..43f1773 100644
--- a/Modules/fcntlmodule.c
+++ b/Modules/fcntlmodule.c
@@ -108,7 +108,13 @@
 		char *arg;
 
 		if (PyTuple_Size(args) == 3) {
-			/* warning goes here in 2.4 */
+#if (PY_MAJOR_VERSION>2) || (PY_MINOR_VERSION>=5)
+#error Remove the warning, change mutate_arg to 1
+#endif
+			if (PyErr_Warn(PyExc_FutureWarning,
+       "ioctl with mutable buffer will mutate the buffer by default in 2.5"
+				    ) < 0)
+				return NULL;
 			mutate_arg = 0;
 		}
 	       	if (mutate_arg) {