diff --git a/tests/run/cpp_custom_string.srctree b/tests/run/cpp_custom_string.srctree
index 11541d307d80d5ac2aeda670db12212aeac4040c..d70860d6ebb10e0ddd3b3bcab723b3a8361bd044 100644
--- a/tests/run/cpp_custom_string.srctree
+++ b/tests/run/cpp_custom_string.srctree
@@ -36,6 +36,8 @@ class MyString2 : public MyString {
     MyString2(const char* data, size_t size) : MyString(data, size) { }
 };
 
+typedef MyString MyTypedefString;
+
 ######## a.pyx ########
 
 # distutils: language = c++
@@ -44,19 +46,26 @@ cdef extern from "my_string.cpp":
   cdef cppclass MyString:
     pass
 
-cdef extern from "my_string.cpp":
   cdef cppclass MyString2:
     pass
 
+  ctypedef MyString2 MyTypedefString  # really a MyString
+
 def do_convert(MyString value):
     return value
 
 def do_convert2(MyString2 value):
     return value
 
+def do_convert_typedef(MyTypedefString value):
+    return value
+
 def test_convert():
     assert do_convert(b"abc") == b"abc"
     assert do_convert(b"ab\0c") == b"ab\0c"
 
     assert do_convert2(b"abc") == b"abc"
     assert do_convert2(b"ab\0c") == b"ab\0c"
+
+    assert do_convert_typedef(b"abc") == "abc"
+    assert do_convert_typedef(b"ab\0c") == b"ab\0c"