diff --git a/src/stralloc.c b/src/stralloc.c
index 6e5847e8916b0b010b97a9c9ce8165a15a5215e1..f6d77b5f10b7e5ce55a3656a48df6dc2f82b6eb8 100644
--- a/src/stralloc.c
+++ b/src/stralloc.c
@@ -25,6 +25,10 @@ static unsigned int StrHash(const char *s,int len)
 #ifdef DEBUG
 void check_string(struct lpc_string *s)
 {
+  StrHash(s->str, s->len);
+  if(full_hash_value != s->hval)
+    fatal("Hash value changed?\n");
+
   if(debug_findstring(s) !=s)
     fatal("Shared string not shared.\n");
 
@@ -133,7 +137,7 @@ static struct lpc_string *propagate_shared_string(const struct lpc_string *s,int
 #ifdef DEBUG
 struct lpc_string *debug_findstring(const struct lpc_string *foo)
 {
-  return propagate_shared_string(foo, StrHash(foo->str, foo->len));
+  return propagate_shared_string(foo, foo->hval % HTABLE_SIZE);
 }
 #endif