diff --git a/ghc/rts/Stable.c b/ghc/rts/Stable.c
index 4244bca0d6a570908033c087f26fa4fd4382b176..d0dbc594c2218189266cd066c6a7c6619640e0ba 100644
--- a/ghc/rts/Stable.c
+++ b/ghc/rts/Stable.c
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: Stable.c,v 1.4 1999/03/08 16:41:24 sof Exp $
+ * $Id: Stable.c,v 1.5 1999/07/16 09:53:44 panne Exp $
  *
  * (c) The GHC Team, 1998-1999
  *
@@ -199,7 +199,7 @@ getStablePtr(StgPtr p)
 
   weight = stable_ptr_table[sn].weight;
   if (weight == 0) {
-    weight = 1 << (BITS_IN(StgWord)-1);
+    weight = (StgWord)1 << (BITS_IN(StgWord)-1);
     stable_ptr_table[sn].weight = weight;
     return (StgStablePtr)(sn + ((BITS_IN(StgWord)-1) << STABLEPTR_WEIGHT_SHIFT));
   }