diff --git a/src/mapping.c b/src/mapping.c
index 8aaa8ed6b9990f2f5276d6b49d3b950269979689..4739c11d85ed25a66ecbc6ae2648e189c8416ef9 100644
--- a/src/mapping.c
+++ b/src/mapping.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id: mapping.c,v 1.9 1996/12/05 01:51:22 hubbe Exp $");
+RCSID("$Id: mapping.c,v 1.10 1997/01/27 01:21:34 hubbe Exp $");
 #include "main.h"
 #include "types.h"
 #include "object.h"
@@ -103,7 +103,7 @@ static void init_mapping(struct mapping *m, INT32 size)
 
 /* This function allocates an empty mapping with room for 'size' values
  */
-static struct mapping *allocate_mapping(int size)
+struct mapping *allocate_mapping(int size)
 {
   struct mapping *m;
 
@@ -465,6 +465,15 @@ struct svalue *low_mapping_lookup(struct mapping *m,
   return 0;
 }
 
+struct svalue *low_mapping_string_lookup(struct mapping *m,
+					 struct pike_string *p)
+{
+  struct svalue tmp;
+  tmp.type=T_STRING;
+  tmp.u.string=p;
+  return low_mapping_lookup(m, &tmp);
+}
+
 void mapping_index_no_free(struct svalue *dest,
 			   struct mapping *m,
 			   struct svalue *key)
diff --git a/src/mapping.h b/src/mapping.h
index 12d0a296baed53b06194cf101ec800de8a5ff02c..558e460aa40af40640d43017e17fe4aa42af63ca 100644
--- a/src/mapping.h
+++ b/src/mapping.h
@@ -25,6 +25,7 @@ struct mapping
 
 /* Prototypes begin here */
 struct keypair;
+struct mapping *allocate_mapping(int size);
 void really_free_mapping(struct mapping *m);
 void mapping_fix_type_field(struct mapping *m);
 void mapping_insert(struct mapping *m,
@@ -38,6 +39,8 @@ void map_delete(struct mapping *m,
 void check_mapping_for_destruct(struct mapping *m);
 struct svalue *low_mapping_lookup(struct mapping *m,
 				  struct svalue *key);
+struct svalue *low_mapping_string_lookup(struct mapping *m,
+					 struct pike_string *p);
 void mapping_index_no_free(struct svalue *dest,
 			   struct mapping *m,
 			   struct svalue *key);