diff --git a/py/objstr.c b/py/objstr.c
index de46ca6..f5a5775 100644
--- a/py/objstr.c
+++ b/py/objstr.c
@@ -130,8 +130,8 @@
     }
 }
 
-#if !MICROPY_PY_BUILTINS_STR_UNICODE || MICROPY_CPYTHON_COMPAT
-STATIC mp_obj_t str_make_new(mp_obj_t type_in, mp_uint_t n_args, mp_uint_t n_kw, const mp_obj_t *args) {
+#if !MICROPY_PY_BUILTINS_STR_UNICODE
+mp_obj_t mp_obj_str_make_new(mp_obj_t type_in, mp_uint_t n_args, mp_uint_t n_kw, const mp_obj_t *args) {
 #if MICROPY_CPYTHON_COMPAT
     if (n_kw != 0) {
         mp_arg_error_unimpl_kw();
@@ -1725,7 +1725,7 @@
         args = new_args;
         n_args++;
     }
-    return str_make_new((mp_obj_t)&mp_type_str, n_args, 0, args);
+    return mp_obj_str_make_new((mp_obj_t)&mp_type_str, n_args, 0, args);
 }
 
 // TODO: should accept kwargs too
@@ -1831,7 +1831,7 @@
     { &mp_type_type },
     .name = MP_QSTR_str,
     .print = str_print,
-    .make_new = str_make_new,
+    .make_new = mp_obj_str_make_new,
     .binary_op = mp_obj_str_binary_op,
     .subscr = bytes_subscr,
     .getiter = mp_obj_new_str_iterator,
diff --git a/py/objstr.h b/py/objstr.h
index 5128a00..bae352a 100644
--- a/py/objstr.h
+++ b/py/objstr.h
@@ -54,6 +54,7 @@
     { str_data = qstr_data(MP_OBJ_QSTR_VALUE(str_obj_in), &str_len); } \
     else { str_len = ((mp_obj_str_t*)str_obj_in)->len; str_data = ((mp_obj_str_t*)str_obj_in)->data; }
 
+mp_obj_t mp_obj_str_make_new(mp_obj_t type_in, mp_uint_t n_args, mp_uint_t n_kw, const mp_obj_t *args);
 void mp_str_print_json(void (*print)(void *env, const char *fmt, ...), void *env, const byte *str_data, mp_uint_t str_len);
 mp_obj_t mp_obj_str_format(mp_uint_t n_args, const mp_obj_t *args, mp_map_t *kwargs);
 mp_obj_t mp_obj_new_str_of_type(const mp_obj_type_t *type, const byte* data, mp_uint_t len);
diff --git a/py/objstrunicode.c b/py/objstrunicode.c
index 06bf64f..ce950b6 100644
--- a/py/objstrunicode.c
+++ b/py/objstrunicode.c
@@ -113,7 +113,7 @@
     }
 }
 
-STATIC mp_obj_t str_make_new(mp_obj_t type_in, mp_uint_t n_args, mp_uint_t n_kw, const mp_obj_t *args) {
+mp_obj_t mp_obj_str_make_new(mp_obj_t type_in, mp_uint_t n_args, mp_uint_t n_kw, const mp_obj_t *args) {
 #if MICROPY_CPYTHON_COMPAT
     if (n_kw != 0) {
         mp_arg_error_unimpl_kw();
@@ -312,7 +312,7 @@
     { &mp_type_type },
     .name = MP_QSTR_str,
     .print = uni_print,
-    .make_new = str_make_new,
+    .make_new = mp_obj_str_make_new,
     .unary_op = uni_unary_op,
     .binary_op = mp_obj_str_binary_op,
     .subscr = str_subscr,
