diff --git a/NEWS b/NEWS
index 9c0ff3c..5e91ac8 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,9 @@
 Library
 -------
 
+- Issue #24857: Comparing call_args to a long sequence now correctly returns a
+  boolean result instead of raising an exception.  Patch by A Kaptur.
+
 - Issue #23004: mock_open() now reads binary data correctly when the type of
   read_data is bytes.  Initial patch by Aaron Hill.
 
diff --git a/mock/mock.py b/mock/mock.py
index 358537d..4846a46 100644
--- a/mock/mock.py
+++ b/mock/mock.py
@@ -2169,8 +2169,7 @@
             else:
                 other_args = ()
                 other_kwargs = value
-        else:
-            # len 2
+        elif len_other == 2:
             # could be (name, args) or (name, kwargs) or (args, kwargs)
             first, second = other
             if isinstance(first, basestring):
@@ -2181,6 +2180,8 @@
                     other_args, other_kwargs = (), second
             else:
                 other_args, other_kwargs = first, second
+        else:
+            return False
 
         if self_name and other_name != self_name:
             return False
diff --git a/mock/tests/testmock.py b/mock/tests/testmock.py
index d60f579..8ec9a60 100644
--- a/mock/tests/testmock.py
+++ b/mock/tests/testmock.py
@@ -326,6 +326,9 @@
         self.assertEqual(mock.call_args,
                          ((sentinel.Arg,), {"kw": sentinel.Kwarg}))
 
+        # Comparing call_args to a long sequence should not raise
+        # an exception. See issue 24857.
+        self.assertFalse(mock.call_args == "a long sequence")
 
     def test_assert_called_with(self):
         mock = Mock()
