diff --git a/src/stralloc.c b/src/stralloc.c
index 152bad42c4a46d5c2decac62e807b27ee0df376b..c7ff8ff18e046d5408c2e47b4842605b56450f9a 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.87 2000/08/04 14:49:59 grubba Exp $");
+RCSID("$Id: stralloc.c,v 1.88 2000/08/04 18:07:51 grubba Exp $");
 
 #define BEGIN_HASH_SIZE 997
 #define MAX_AVG_LINK_LENGTH 3
@@ -91,7 +91,7 @@ static INLINE int min_magnitude(const unsigned INT32 c)
   return 2;
 }
 
-static INLINE unsigned INT32 generic_extract (const void *str, int size, int pos)
+static INLINE unsigned INT32 generic_extract (const void *str, int size, ptrdiff_t pos)
 {
   switch(size)
   {
@@ -103,7 +103,7 @@ static INLINE unsigned INT32 generic_extract (const void *str, int size, int pos
   return 0;
 }
 
-PMOD_EXPORT INLINE unsigned INT32 index_shared_string(struct pike_string *s, int pos)
+PMOD_EXPORT INLINE unsigned INT32 index_shared_string(struct pike_string *s, ptrdiff_t pos)
 {
 #ifdef PIKE_DEBUG
   if(pos > s->len || pos<0) {
diff --git a/src/stralloc.h b/src/stralloc.h
index d0bf78f31c7f80663391dc0de39c20d626d4fc5f..ff6cac9e0ff22c912854d85dd40e7de94142078f 100644
--- a/src/stralloc.h
+++ b/src/stralloc.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: stralloc.h,v 1.45 2000/08/04 14:50:00 grubba Exp $
+ * $Id: stralloc.h,v 1.46 2000/08/04 18:07:52 grubba Exp $
  */
 #ifndef STRALLOC_H
 #define STRALLOC_H
@@ -147,7 +147,7 @@ INLINE INT32 PIKE_CONCAT4(compare_,FROM,_to_,TO)(const PIKE_CONCAT(p_wchar,TO) *
 
 
 /* Prototypes begin here */
-PMOD_EXPORT INLINE unsigned INT32 index_shared_string(struct pike_string *s, int pos);
+PMOD_EXPORT INLINE unsigned INT32 index_shared_string(struct pike_string *s, ptrdiff_t pos);
 PMOD_EXPORT INLINE void low_set_index(struct pike_string *s, int pos, int value);
 PMOD_EXPORT INLINE struct pike_string *debug_check_size_shift(struct pike_string *a,int shift);
 CONVERT(0,1)