diff --git a/src/stralloc.c b/src/stralloc.c
index c7ff8ff18e046d5408c2e47b4842605b56450f9a..6f5781f79b21412832c89664f888be72f7ce1808 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.88 2000/08/04 18:07:51 grubba Exp $");
+RCSID("$Id: stralloc.c,v 1.89 2000/08/08 19:21:55 grubba Exp $");
 
 #define BEGIN_HASH_SIZE 997
 #define MAX_AVG_LINK_LENGTH 3
@@ -1751,7 +1751,7 @@ PMOD_EXPORT struct pike_string *finish_string_builder(struct string_builder *s)
   return end_shared_string(s->s);
 }
 
-PMOD_EXPORT PCHARP MEMCHR_PCHARP(PCHARP ptr, int chr, int len)
+PMOD_EXPORT PCHARP MEMCHR_PCHARP(PCHARP ptr, int chr, ptrdiff_t len)
 {
   switch(ptr.shift)
   {
diff --git a/src/stralloc.h b/src/stralloc.h
index ff6cac9e0ff22c912854d85dd40e7de94142078f..b908572a630421ea60c5ec514aafa7f27a82cc55 100644
--- a/src/stralloc.h
+++ b/src/stralloc.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: stralloc.h,v 1.46 2000/08/04 18:07:52 grubba Exp $
+ * $Id: stralloc.h,v 1.47 2000/08/08 19:21:55 grubba Exp $
  */
 #ifndef STRALLOC_H
 #define STRALLOC_H
@@ -20,10 +20,10 @@
 struct pike_string
 {
   ptrdiff_t refs;
+  INT32 size_shift; /* 30 bit waste, but good for alignment... */
   ptrdiff_t len;
   size_t hval;
   struct pike_string *next; 
-  size_t size_shift; /* 30/62 bit waste, but good for alignment... */
   char str[1];
 };
 
@@ -241,7 +241,7 @@ PMOD_EXPORT void string_builder_shared_strcat(struct string_builder *s, struct p
 PMOD_EXPORT void reset_string_builder(struct string_builder *s);
 PMOD_EXPORT void free_string_builder(struct string_builder *s);
 PMOD_EXPORT struct pike_string *finish_string_builder(struct string_builder *s);
-PMOD_EXPORT PCHARP MEMCHR_PCHARP(PCHARP ptr, int chr, int len);
+PMOD_EXPORT PCHARP MEMCHR_PCHARP(PCHARP ptr, int chr, ptrdiff_t len);
 PMOD_EXPORT long STRTOL_PCHARP(PCHARP str, PCHARP *ptr, int base);
 PMOD_EXPORT int string_to_svalue_inumber(struct svalue *r,
 			     char * str,