diff --git a/tests/test_inheritance.cpp b/tests/test_inheritance.cpp
index 798beff..f75e9cf 100644
--- a/tests/test_inheritance.cpp
+++ b/tests/test_inheritance.cpp
@@ -77,5 +77,10 @@
 
     m.def("return_class_1", []() -> BaseClass* { return new DerivedClass1(); });
     m.def("return_class_2", []() -> BaseClass* { return new DerivedClass2(); });
+    m.def("return_class_n", [](int n) -> BaseClass* {
+        if (n == 1) return new DerivedClass1();
+        if (n == 2) return new DerivedClass2();
+        return new BaseClass();
+    });
     m.def("return_none", []() -> BaseClass* { return nullptr; });
 });
diff --git a/tests/test_inheritance.py b/tests/test_inheritance.py
index d4cea82..d6997b0 100644
--- a/tests/test_inheritance.py
+++ b/tests/test_inheritance.py
@@ -31,8 +31,16 @@
 
 
 def test_automatic_upcasting():
-    from pybind11_tests import return_class_1, return_class_2, return_none
+    from pybind11_tests import return_class_1, return_class_2, return_class_n, return_none
 
     assert type(return_class_1()).__name__ == "DerivedClass1"
     assert type(return_class_2()).__name__ == "DerivedClass2"
     assert type(return_none()).__name__ == "NoneType"
+    # Repeat these a few times in a random order to ensure no invalid caching is applied
+    assert type(return_class_n(1)).__name__ == "DerivedClass1"
+    assert type(return_class_n(2)).__name__ == "DerivedClass2"
+    assert type(return_class_n(0)).__name__ == "BaseClass"
+    assert type(return_class_n(2)).__name__ == "DerivedClass2"
+    assert type(return_class_n(2)).__name__ == "DerivedClass2"
+    assert type(return_class_n(0)).__name__ == "BaseClass"
+    assert type(return_class_n(1)).__name__ == "DerivedClass1"
