diff --git a/python/BUILD b/python/BUILD
index 68cd74a..a00b0d0 100644
--- a/python/BUILD
+++ b/python/BUILD
@@ -93,10 +93,28 @@
     cmd = "cp $< $@",
 )
 
+genrule(
+    name = "api_implementation_ext",
+    srcs = [":api_implementation"],
+    outs = ["google/protobuf/internal/_api_implementation" + EXT_SUFFIX],
+    cmd = "cp $< $@",
+)
+
 py_test(
     name = "minimal_test",
-    srcs = ["minimal_test.py"],
-    data = [":message_ext"],
+    #srcs = ["minimal_test.py"],
+    srcs = [
+        "minimal_test.py",
+        "@com_google_protobuf//:python_tests",
+    ],
+    deps = [
+        "@com_google_protobuf//:python_tests",
+    ],
+    data = [
+        "@com_google_protobuf//:python_tests",
+        ":message_ext",
+        ":api_implementation_ext",
+    ],
     imports = ["."],
     legacy_create_init = False,
 )
diff --git a/python/message.c b/python/message.c
index 728b116..e486fde 100644
--- a/python/message.c
+++ b/python/message.c
@@ -332,7 +332,7 @@
   return ok >= 0;
 }
 
-static bool PyUpb_CMessage_InitRepeatedAttribute() {
+static bool PyUpb_CMessage_InitRepeatedAttribute(void) {
   // TODO(haberman): disabled until repeated container is in.
   // PyObject* repeated = PyUpb_CMessage_GetAttr(_self, name);
   // PyObject* tmp = PyUpb_RepeatedContainer_Extend(repeated, value);
@@ -1537,7 +1537,7 @@
     PyUpb_MessageMeta_Slots,
 };
 
-static PyObject* PyUpb_MessageMeta_CreateType() {
+static PyObject* PyUpb_MessageMeta_CreateType(void) {
   PyObject* bases = Py_BuildValue("(O)", &PyType_Type);
   if (!bases) return NULL;
   PyUpb_MessageMeta_Spec.basicsize =
diff --git a/python/minimal_test.py b/python/minimal_test.py
index 13f1124..32b8333 100644
--- a/python/minimal_test.py
+++ b/python/minimal_test.py
@@ -29,6 +29,7 @@
 
 import unittest
 from google.protobuf.pyext import _message
+from google.protobuf.internal import api_implementation
 
 class TestMessageExtension(unittest.TestCase):
 
@@ -48,9 +49,11 @@
     def test_lib_is_upb(self):
         # Ensure we are not pulling in a different protobuf library on the
         # system.
+        print(_message._IS_UPB)
         self.assertTrue(_message._IS_UPB)
+        self.assertEqual(api_implementation.Type(), "cpp")
 
-TestMessageExtension.test_descriptor_pool.__unittest_expecting_failure__ = True
+#TestMessageExtension.test_descriptor_pool.__unittest_expecting_failure__ = True
 
 
 if __name__ == '__main__':
diff --git a/python/protobuf.c b/python/protobuf.c
index afe92c6..09b1552 100644
--- a/python/protobuf.c
+++ b/python/protobuf.c
@@ -288,7 +288,8 @@
   state->obj_cache = PyUpb_WeakMap_New();
 
   if (!PyUpb_InitDescriptorContainers(m) || !PyUpb_InitDescriptorPool(m) ||
-      !PyUpb_InitDescriptor(m) || !PyUpb_InitArena(m)) {
+      !PyUpb_InitDescriptor(m) || !PyUpb_InitArena(m) ||
+      !PyUpb_InitMessage(m)) {
     Py_DECREF(m);
     return NULL;
   }
