merge heads
diff --git a/Lib/test/test_exceptions.py b/Lib/test/test_exceptions.py
index 5526fb7..2160641 100644
--- a/Lib/test/test_exceptions.py
+++ b/Lib/test/test_exceptions.py
@@ -473,6 +473,12 @@
         with self.assertRaises(TypeError):
             raise MyException
 
+    def test_assert_with_tuple_arg(self):
+        try:
+            assert False, (3,)
+        except AssertionError as e:
+            self.assertEqual(str(e), "(3,)")
+
 
 # Helper class used by TestSameStrAndUnicodeMsg
 class ExcWithOverriddenStr(Exception):
diff --git a/Misc/NEWS b/Misc/NEWS
index 04aa011..9f7028f 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -9,6 +9,8 @@
 Core and Builtins
 -----------------
 
+- Issue #13268: Fix the assert statement when a tuple is passed as the message.
+
 - Issue #13018: Fix reference leaks in error paths in dictobject.c.
   Patch by Suman Saha.
 
diff --git a/Python/compile.c b/Python/compile.c
index 9440cec..119c60f 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -2079,11 +2079,9 @@
     ADDOP_O(c, LOAD_GLOBAL, assertion_error, names);
     if (s->v.Assert.msg) {
         VISIT(c, expr, s->v.Assert.msg);
-        ADDOP_I(c, RAISE_VARARGS, 2);
+        ADDOP_I(c, CALL_FUNCTION, 1);
     }
-    else {
-        ADDOP_I(c, RAISE_VARARGS, 1);
-    }
+    ADDOP_I(c, RAISE_VARARGS, 1);
     compiler_use_next_block(c, end);
     return 1;
 }