diff --git a/src/stralloc.c b/src/stralloc.c
index 73444a008f96b5f03fac47c80a5f4006fa239f0b..b73ce89e9f404086ab44cbb031f8e7de8a46dad8 100644
--- a/src/stralloc.c
+++ b/src/stralloc.c
@@ -25,7 +25,7 @@
 #define HUGE HUGE_VAL
 #endif /*!HUGE*/
 
-RCSID("$Id: stralloc.c,v 1.85 2000/07/28 17:16:55 hubbe Exp $");
+RCSID("$Id: stralloc.c,v 1.86 2000/08/03 16:30:16 grubba Exp $");
 
 #define BEGIN_HASH_SIZE 997
 #define MAX_AVG_LINK_LENGTH 3
@@ -411,7 +411,7 @@ static void rehash(void)
 /* note that begin_shared_string expects the _exact_ size of the string,
  * not the maximum size
  */
-PMOD_EXPORT struct pike_string *debug_begin_shared_string(int len)
+PMOD_EXPORT struct pike_string *debug_begin_shared_string(size_t len)
 {
   struct pike_string *t;
 #ifdef PIKE_DEBUG
@@ -471,7 +471,7 @@ static void link_pike_string(struct pike_string *s, unsigned int h)
 #endif
 }
 
-PMOD_EXPORT struct pike_string *debug_begin_wide_shared_string(int len, int shift)
+PMOD_EXPORT struct pike_string *debug_begin_wide_shared_string(size_t len, int shift)
 {
   struct pike_string *t;
 #ifdef PIKE_DEBUG
@@ -565,7 +565,7 @@ PMOD_EXPORT struct pike_string *end_shared_string(struct pike_string *s)
 }
 
 
-PMOD_EXPORT struct pike_string * debug_make_shared_binary_string(const char *str,int len)
+PMOD_EXPORT struct pike_string * debug_make_shared_binary_string(const char *str,size_t len)
 {
   struct pike_string *s;
   int h=StrHash(str,len);
@@ -583,7 +583,7 @@ PMOD_EXPORT struct pike_string * debug_make_shared_binary_string(const char *str
   return s;
 }
 
-PMOD_EXPORT struct pike_string * debug_make_shared_binary_pcharp(const PCHARP str,int len)
+PMOD_EXPORT struct pike_string * debug_make_shared_binary_pcharp(const PCHARP str,size_t len)
 {
   switch(str.shift)
   {
@@ -605,12 +605,12 @@ PMOD_EXPORT struct pike_string * debug_make_shared_pcharp(const PCHARP str)
   return debug_make_shared_binary_pcharp(str, pcharp_strlen(str));
 }
 
-PMOD_EXPORT struct pike_string * debug_make_shared_binary_string0(const p_wchar0 *str,int len)
+PMOD_EXPORT struct pike_string * debug_make_shared_binary_string0(const p_wchar0 *str,size_t len)
 {
   return debug_make_shared_binary_string((const char *)str, len);
 }
 
-PMOD_EXPORT struct pike_string * debug_make_shared_binary_string1(const p_wchar1 *str,int len)
+PMOD_EXPORT struct pike_string * debug_make_shared_binary_string1(const p_wchar1 *str,size_t len)
 {
   struct pike_string *s;
   int h;
@@ -638,7 +638,7 @@ PMOD_EXPORT struct pike_string * debug_make_shared_binary_string1(const p_wchar1
   return s;
 }
 
-PMOD_EXPORT struct pike_string * debug_make_shared_binary_string2(const p_wchar2 *str,int len)
+PMOD_EXPORT struct pike_string * debug_make_shared_binary_string2(const p_wchar2 *str,size_t len)
 {
   struct pike_string *s;
   int h;
diff --git a/src/stralloc.h b/src/stralloc.h
index 33732a3cbf832205ef9f3acf744ba81102f19764..3c9a84da68dfb7c91ab86c3ff175f43bec591e85 100644
--- a/src/stralloc.h
+++ b/src/stralloc.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: stralloc.h,v 1.42 2000/07/28 17:16:55 hubbe Exp $
+ * $Id: stralloc.h,v 1.43 2000/08/03 16:30:16 grubba Exp $
  */
 #ifndef STRALLOC_H
 #define STRALLOC_H
@@ -19,19 +19,19 @@
 #endif
 struct pike_string
 {
-  INT32 refs;
-  INT32 len;
-  unsigned INT32 hval;
+  ptrdiff_t refs;
+  size_t len;
+  size_t hval;
   struct pike_string *next; 
-  int size_shift; /* 30 bit waste, but good for alignment... */
+  size_t size_shift; /* 30/62 bit waste, but good for alignment... */
   char str[1];
 };
 
 struct string_builder
 {
   struct pike_string *s;
-  int malloced;
-  int known_shift;
+  size_t malloced;
+  size_t known_shift;
 };
 
 #ifdef PIKE_DEBUG
@@ -40,7 +40,7 @@ struct pike_string *debug_findstring(const struct pike_string *foo);
 
 #define free_string(s) do{ struct pike_string *_=(s); debug_malloc_touch(_); if(--_->refs<=0) really_free_string(_); }while(0)
 
-#define my_hash_string(X) ((unsigned long)(X))
+#define my_hash_string(X) ((size_t)(X))
 #define my_order_strcmp(X,Y) ((char *)(X)-(char *)(Y))
 #define is_same_string(X,Y) ((X)==(Y))
 
@@ -165,16 +165,16 @@ PMOD_EXPORT INLINE void pike_string_cpy(PCHARP to,
 			    struct pike_string *from);
 PMOD_EXPORT struct pike_string *binary_findstring(const char *foo, INT32 l);
 PMOD_EXPORT struct pike_string *findstring(const char *foo);
-PMOD_EXPORT struct pike_string *debug_begin_shared_string(int len);
-PMOD_EXPORT struct pike_string *debug_begin_wide_shared_string(int len, int shift);
+PMOD_EXPORT struct pike_string *debug_begin_shared_string(size_t len);
+PMOD_EXPORT struct pike_string *debug_begin_wide_shared_string(size_t len, int shift);
 PMOD_EXPORT struct pike_string *low_end_shared_string(struct pike_string *s);
 PMOD_EXPORT struct pike_string *end_shared_string(struct pike_string *s);
-PMOD_EXPORT struct pike_string * debug_make_shared_binary_string(const char *str,int len);
-PMOD_EXPORT struct pike_string * debug_make_shared_binary_pcharp(const PCHARP str,int len);
+PMOD_EXPORT struct pike_string * debug_make_shared_binary_string(const char *str,size_t len);
+PMOD_EXPORT struct pike_string * debug_make_shared_binary_pcharp(const PCHARP str,size_t len);
 PMOD_EXPORT struct pike_string * debug_make_shared_pcharp(const PCHARP str);
-PMOD_EXPORT struct pike_string * debug_make_shared_binary_string0(const p_wchar0 *str,int len);
-PMOD_EXPORT struct pike_string * debug_make_shared_binary_string1(const p_wchar1 *str,int len);
-PMOD_EXPORT struct pike_string * debug_make_shared_binary_string2(const p_wchar2 *str,int len);
+PMOD_EXPORT struct pike_string * debug_make_shared_binary_string0(const p_wchar0 *str,size_t len);
+PMOD_EXPORT struct pike_string * debug_make_shared_binary_string1(const p_wchar1 *str,size_t len);
+PMOD_EXPORT struct pike_string * debug_make_shared_binary_string2(const p_wchar2 *str,size_t len);
 PMOD_EXPORT struct pike_string *debug_make_shared_string(const char *str);
 PMOD_EXPORT struct pike_string *debug_make_shared_string0(const p_wchar0 *str);
 PMOD_EXPORT struct pike_string *debug_make_shared_string1(const p_wchar1 *str);