}
 
        if p < h.arena_start || uintptr(p)+p_size-h.arena_start >= _MaxArena32 {
-               print("runtime: memory allocated by OS (", hex(p), ") not in usable range [", hex(h.arena_start), ",", hex(h.arena_start+_MaxArena32), ")\n")
+               top := ^uintptr(0)
+               if top-h.arena_start > _MaxArena32 {
+                       top = h.arena_start + _MaxArena32
+               }
+               print("runtime: memory allocated by OS (", hex(p), ") not in usable range [", hex(h.arena_start), ",", hex(top), ")\n")
                sysFree(unsafe.Pointer(p), p_size, &memstats.heap_sys)
                return nil
        }