diff --git a/src/mapping.c b/src/mapping.c
index 0628dfd8399b3fbbf75380b872047140ede83221..c12be9e684467b28b271a0da5069662cf7812a62 100644
--- a/src/mapping.c
+++ b/src/mapping.c
@@ -1186,7 +1186,7 @@ PMOD_EXPORT void map_delete_no_free(struct mapping *m,
 #endif
 
   if (!(md->flags & MAPPING_FLAG_NO_SHRINK)) {
-    if((md->size < md->hashsize * MIN_LINK_LENGTH) &&
+    if((MAP_SLOTS(md->size) < md->hashsize * MIN_LINK_LENGTH) &&
        (md->hashsize > AVG_LINK_LENGTH)) {
       debug_malloc_touch(m);
       rehash(m, MAP_SLOTS(m->data->size));