diff --git a/Lib/test/test_py3kwarn.py b/Lib/test/test_py3kwarn.py
index eb05303..a636a49 100644
--- a/Lib/test/test_py3kwarn.py
+++ b/Lib/test/test_py3kwarn.py
@@ -279,6 +279,18 @@
                 def __hash__(self): pass
             self.assertEqual(len(w.warnings), 0)
 
+    def test_operator(self):
+        from operator import isCallable, sequenceIncludes
+
+        expected_ = ("operator.isCallable() is not supported in 3.x. "
+                     "Use hasattr(obj, '__call__').")
+        seq_warn = ("operator.sequenceIncludes() is not supported "
+                    "in 3.x. Use operator.contains().")
+        with check_warnings() as w:
+            self.assertWarning(isCallable(self), w, callable_warn)
+            w.reset()
+            self.assertWarning(sequenceIncludes(range(3), 2), w, seq_warn)
+
 
 class TestStdlibRemovals(unittest.TestCase):
 
diff --git a/Modules/operator.c b/Modules/operator.c
index fd98efd..78b7796 100644
--- a/Modules/operator.c
+++ b/Modules/operator.c
@@ -65,7 +65,26 @@
   if(! PyArg_UnpackTuple(a,#OP,2,2,&a1,&a2)) return NULL; \
   return PyObject_RichCompare(a1,a2,A); }
 
-spami(isCallable       , PyCallable_Check)
+/* Deprecated operators that need warnings. */
+static int
+op_isCallable(PyObject *x)
+{
+	if (PyErr_WarnPy3k("operator.isCallable() is not supported in 3.x. "
+			   "Use hasattr(obj, '__call__').", 1) < 0)
+		return -1;
+	return PyCallable_Check(x);
+}
+
+static int
+op_sequenceIncludes(PyObject *seq, PyObject* ob)
+{
+	if (PyErr_WarnPy3k("operator.sequenceIncludes() is not supported "
+			   "in 3.x. Use operator.contains().", 1) < 0)
+		return -1;
+	return PySequence_Contains(seq, ob);
+}
+
+spami(isCallable       , op_isCallable)
 spami(isNumberType     , PyNumber_Check)
 spami(truth            , PyObject_IsTrue)
 spam2(op_add           , PyNumber_Add)
@@ -104,7 +123,7 @@
 spam2(op_iconcat       , PySequence_InPlaceConcat)
 spamoi(op_irepeat      , PySequence_InPlaceRepeat)
 spami2b(op_contains     , PySequence_Contains)
-spami2b(sequenceIncludes, PySequence_Contains)
+spami2b(sequenceIncludes, op_sequenceIncludes)
 spamn2(indexOf         , PySequence_Index)
 spamn2(countOf         , PySequence_Count)
 spami(isMappingType    , PyMapping_Check)
