diff --git a/src/stralloc.c b/src/stralloc.c
index 96a198aef6c015860d20f725135a7b9e16665ef3..1814bf6ef94b6166fae8ee568a035adfa02a61bc 100644
--- a/src/stralloc.c
+++ b/src/stralloc.c
@@ -2336,23 +2336,6 @@ PMOD_EXPORT void init_string_builder_copy(struct string_builder *to,
   to->known_shift = from->known_shift;
 }
 
-/* str becomes invalid if successful (i.e. nonzero returned),
- * otherwise nothing happens. */
-PMOD_EXPORT int init_string_builder_with_string (struct string_builder *s,
-						 struct pike_string *str)
-{
-  if (str->refs == 1 && str->len > SHORT_STRING_THRESHOLD) {
-    /* Unlink the string and use it as buffer directly. */
-    unlink_pike_string (str);
-    str->flags = STRING_NOT_SHARED;
-    s->s = str;
-    s->malloced = str->len;
-    s->known_shift = str->size_shift;
-    return 1;
-  }
-  return 0;
-}
-
 PMOD_EXPORT void string_build_mkspace(struct string_builder *s,
 				      ptrdiff_t chars, int mag)
 /* Doesn't touch or sanity check s->known_shift. */
diff --git a/src/stralloc.h b/src/stralloc.h
index a920e69c6ceba822137d7ea7b6657106cd65ccad..7b94e6c92683797dbfab5c45cacf18450daf2f17 100644
--- a/src/stralloc.h
+++ b/src/stralloc.h
@@ -373,8 +373,6 @@ PMOD_EXPORT void init_string_builder(struct string_builder *s, int mag);
 PMOD_EXPORT void init_string_builder_alloc(struct string_builder *s, ptrdiff_t length, int mag);
 PMOD_EXPORT void init_string_builder_copy(struct string_builder *to,
 					  struct string_builder *from);
-PMOD_EXPORT int init_string_builder_with_string (struct string_builder *s,
-						 struct pike_string *str);
 PMOD_EXPORT void string_build_mkspace(struct string_builder *s,
 				      ptrdiff_t chars, int mag);
 PMOD_EXPORT void *string_builder_allocate(struct string_builder *s, ptrdiff_t chars, int mag);