diff --git a/Include/object.h b/Include/object.h
index 48ce9d2..0d84d36 100644
--- a/Include/object.h
+++ b/Include/object.h
@@ -1158,8 +1158,8 @@
      ((expr)                                           \
       ? (void)(0)                                      \
       : _PyObject_AssertFailed((obj),                  \
-                               (msg),                  \
                                Py_STRINGIFY(expr),     \
+                               (msg),                  \
                                __FILE__,               \
                                __LINE__,               \
                                __func__))
@@ -1169,11 +1169,13 @@
 
 /* Declare and define _PyObject_AssertFailed() even when NDEBUG is defined,
    to avoid causing compiler/linker errors when building extensions without
-   NDEBUG against a Python built with NDEBUG defined. */
+   NDEBUG against a Python built with NDEBUG defined.
+
+   msg, expr and function can be NULL. */
 PyAPI_FUNC(void) _PyObject_AssertFailed(
     PyObject *obj,
-    const char *msg,
     const char *expr,
+    const char *msg,
     const char *file,
     int line,
     const char *function);
diff --git a/Lib/test/test_capi.py b/Lib/test/test_capi.py
index 3c8c3f0..7c68b2c 100644
--- a/Lib/test/test_capi.py
+++ b/Lib/test/test_capi.py
@@ -330,7 +330,7 @@
         rc, out, err = assert_python_failure('-c', code)
         self.assertRegex(err,
                          br'_testcapimodule\.c:[0-9]+: '
-                         br'_Py_NegativeRefcount: Assertion ".*" failed; '
+                         br'_Py_NegativeRefcount: Assertion failed: '
                          br'object has negative ref count')
 
 
diff --git a/Objects/object.c b/Objects/object.c
index 801b205..9d2614b 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -205,8 +205,7 @@
 void
 _Py_NegativeRefcount(const char *filename, int lineno, PyObject *op)
 {
-    _PyObject_AssertFailed(op, "object has negative ref count",
-                           "op->ob_refcnt >= 0",
+    _PyObject_AssertFailed(op, NULL, "object has negative ref count",
                            filename, lineno, __func__);
 }
 
@@ -2219,21 +2218,26 @@
 
 
 void
-_PyObject_AssertFailed(PyObject *obj, const char *msg, const char *expr,
+_PyObject_AssertFailed(PyObject *obj, const char *expr, const char *msg,
                        const char *file, int line, const char *function)
 {
-    fprintf(stderr,
-            "%s:%d: %s: Assertion \"%s\" failed",
-            file, line, function, expr);
+    fprintf(stderr, "%s:%d: ", file, line);
+    if (function) {
+        fprintf(stderr, "%s: ", function);
+    }
     fflush(stderr);
-
-    if (msg) {
-        fprintf(stderr, "; %s.\n", msg);
+    if (expr) {
+        fprintf(stderr, "Assertion \"%s\" failed", expr);
     }
     else {
-        fprintf(stderr, ".\n");
+        fprintf(stderr, "Assertion failed");
     }
     fflush(stderr);
+    if (msg) {
+        fprintf(stderr, ": %s", msg);
+    }
+    fprintf(stderr, "\n");
+    fflush(stderr);
 
     if (obj == NULL) {
         fprintf(stderr, "<NULL object>\n");
