diff --git a/Lib/test/test_structmembers.py b/Lib/test/test_structmembers.py
index 0f9bf4e..1f20923 100644
--- a/Lib/test/test_structmembers.py
+++ b/Lib/test/test_structmembers.py
@@ -1,4 +1,4 @@
-from _testcapi import test_structmembersType, \
+from _testcapi import _test_structmembersType, \
     CHAR_MAX, CHAR_MIN, UCHAR_MAX, \
     SHRT_MAX, SHRT_MIN, USHRT_MAX, \
     INT_MAX, INT_MIN, UINT_MAX, \
@@ -8,7 +8,7 @@
 import warnings, exceptions, unittest, sys
 from test import test_support
 
-ts=test_structmembersType(False, 1, 2, 3, 4, 5, 6, 7, 8,
+ts=_test_structmembersType(False, 1, 2, 3, 4, 5, 6, 7, 8,
                           9.99999, 10.1010101010, "hi")
 
 class ReadWriteTests(unittest.TestCase):
diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c
index b6ba0f3..0996145 100644
--- a/Modules/_testcapimodule.c
+++ b/Modules/_testcapimodule.c
@@ -969,7 +969,7 @@
 	unsigned long ulong_member;
 	float float_member;
 	double double_member;
-	char inplace_member[5];
+	char inplace_member[6];
 #ifdef HAVE_LONG_LONG
 	PY_LONG_LONG longlong_member;
 	unsigned PY_LONG_LONG ulonglong_member;
@@ -1008,7 +1008,7 @@
 	static char *keywords[] = {
 		"T_BOOL", "T_BYTE", "T_UBYTE", "T_SHORT", "T_USHORT",
 		"T_INT", "T_UINT", "T_LONG", "T_ULONG",
-		"T_FLOAT", "T_DOUBLE", "T_INPLACE_STRING",
+		"T_FLOAT", "T_DOUBLE", "T_STRING_INPLACE",
 #ifdef HAVE_LONG_LONG	
 		"T_LONGLONG", "T_ULONGLONG",
 #endif
@@ -1019,7 +1019,7 @@
 #endif
 		;
 	test_structmembers *ob;
-	const char *s;
+	const char *s = NULL;
 	Py_ssize_t string_len = 0;
 	ob = PyObject_New(test_structmembers, type);
 	if (ob == NULL)
@@ -1032,7 +1032,7 @@
 					 &ob->structmembers.short_member,
 					 &ob->structmembers.ushort_member,
 					 &ob->structmembers.int_member,
-					 &ob->structmembers.uint_member, 
+					 &ob->structmembers.uint_member,
 					 &ob->structmembers.long_member,
 					 &ob->structmembers.ulong_member,
 					 &ob->structmembers.float_member,
@@ -1046,12 +1046,17 @@
 		Py_DECREF(ob);
 		return NULL;
 	}
-	if (string_len > 5) {
-		Py_DECREF(ob);
-		PyErr_SetString(PyExc_ValueError, "string too long");
-		return NULL;
+	if (s != NULL) {
+		if (string_len > 5) {
+			Py_DECREF(ob);
+			PyErr_SetString(PyExc_ValueError, "string too long");
+			return NULL;
+		}
+		strcpy(ob->structmembers.inplace_member, s);
 	}
-	strcpy(ob->structmembers.inplace_member, s);
+	else {
+		strcpy(ob->structmembers.inplace_member, "");
+	}
 	return (PyObject *)ob;
 }
 
@@ -1116,7 +1121,9 @@
 
 	Py_TYPE(&test_structmembersType)=&PyType_Type;
 	Py_INCREF(&test_structmembersType);
-	PyModule_AddObject(m, "test_structmembersType", (PyObject *)&test_structmembersType);
+	/* don't use a name starting with "test", since we don't want
+	   test_capi to automatically call this */
+	PyModule_AddObject(m, "_test_structmembersType", (PyObject *)&test_structmembersType);
 
 	PyModule_AddObject(m, "CHAR_MAX", PyInt_FromLong(CHAR_MAX));
 	PyModule_AddObject(m, "CHAR_MIN", PyInt_FromLong(CHAR_MIN));
