diff --git a/src/stralloc.c b/src/stralloc.c
index 25a59d4e682b46261759be93dee6827a83507591..d8f3344e9b472fdadc9bd2dda06b0fd68d5d86f1 100644
--- a/src/stralloc.c
+++ b/src/stralloc.c
@@ -15,7 +15,7 @@
 
 #include <ctype.h>
 
-RCSID("$Id: stralloc.c,v 1.37 1998/05/25 19:38:31 grubba Exp $");
+RCSID("$Id: stralloc.c,v 1.38 1998/09/18 21:33:07 hubbe Exp $");
 
 #define BEGIN_HASH_SIZE 997
 #define MAX_AVG_LINK_LENGTH 3
@@ -263,6 +263,16 @@ struct pike_string *debug_make_shared_string(const char *str)
   return make_shared_binary_string(str, strlen(str));
 }
 
+struct pike_string *make_shared_string2(const INT16 *str)
+{
+  INT32 e,len;
+  struct pike_string *s;
+  for(len=0;str[len];len++);
+  s=begin_shared_string(len);
+  for(e=0;e<len;e++) s->str[e]=str[e];
+  return end_shared_string(s);
+}
+
 /*** Free strings ***/
 
 void unlink_pike_string(struct pike_string *s)
diff --git a/src/stralloc.h b/src/stralloc.h
index 243a8606f0ec77a7e5bca3c9401af7b3b16d6571..642d361edff737b3e7cdd49b0663e8ca5f97594a 100644
--- a/src/stralloc.h
+++ b/src/stralloc.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: stralloc.h,v 1.16 1998/05/25 10:38:46 hubbe Exp $
+ * $Id: stralloc.h,v 1.17 1998/09/18 21:33:07 hubbe Exp $
  */
 #ifndef STRALLOC_H
 #define STRALLOC_H
@@ -81,6 +81,7 @@ struct pike_string *debug_begin_shared_string(int len);
 struct pike_string *end_shared_string(struct pike_string *s);
 struct pike_string * debug_make_shared_binary_string(const char *str,int len);
 struct pike_string *debug_make_shared_string(const char *str);
+struct pike_string *make_shared_string2(const INT16 *str);
 void unlink_pike_string(struct pike_string *s);
 void really_free_string(struct pike_string *s);
 void debug_free_string(struct pike_string *s);