diff --git a/Modules/_struct.c b/Modules/_struct.c
index ff1aca2..d924cad 100644
--- a/Modules/_struct.c
+++ b/Modules/_struct.c
@@ -160,7 +160,7 @@
 			PyObject *o;
 			int res;
 			PyErr_Clear();
-			if (PyErr_WarnEx(PyExc_DeprecationWarning, FLOAT_COERCE, 2) < 0)
+			if (PyErr_WarnEx(PyExc_DeprecationWarning, FLOAT_COERCE, 1) < 0)
 				return -1;
 			o = PyNumber_Int(v);
 			if (o == NULL)
@@ -269,7 +269,7 @@
 				PyObject *o;
 				int res;
 				PyErr_Clear();
-				if (PyErr_WarnEx(PyExc_DeprecationWarning, FLOAT_COERCE, 2) < 0)
+				if (PyErr_WarnEx(PyExc_DeprecationWarning, FLOAT_COERCE, 1) < 0)
 					return -1;
 				o = PyNumber_Int(v);
 				if (o == NULL)
@@ -279,7 +279,7 @@
 				return res;
 			}
 #endif
-			if (PyErr_WarnEx(PyExc_DeprecationWarning, INT_OVERFLOW, 2) < 0)
+			if (PyErr_WarnEx(PyExc_DeprecationWarning, INT_OVERFLOW, 1) < 0)
 				return -1;
 			wrapped = PyNumber_And(v, pylong_ulong_mask);
 			if (wrapped == NULL)
@@ -308,7 +308,7 @@
 			PyObject *o;
 			int res;
 			PyErr_Clear();
-			if (PyErr_WarnEx(PyExc_DeprecationWarning, FLOAT_COERCE, 2) < 0)
+			if (PyErr_WarnEx(PyExc_DeprecationWarning, FLOAT_COERCE, 1) < 0)
 				return -1;
 			o = PyNumber_Int(v);
 			if (o == NULL)
@@ -321,7 +321,7 @@
 		wrapped = PyNumber_And(v, pylong_ulong_mask);
 		if (wrapped == NULL)
 			return -1;
-		if (PyErr_WarnEx(PyExc_DeprecationWarning, INT_OVERFLOW, 2) < 0) {
+		if (PyErr_WarnEx(PyExc_DeprecationWarning, INT_OVERFLOW, 1) < 0) {
 			Py_DECREF(wrapped);
 			return -1;
 		}
@@ -417,7 +417,7 @@
 		if (msg == NULL)
 			return -1;
 		rval = PyErr_WarnEx(PyExc_DeprecationWarning,
-				    PyString_AS_STRING(msg), 2);
+				    PyString_AS_STRING(msg), 1);
 		Py_DECREF(msg);
 		if (rval == 0)
 			return 0;
