--- deliantra/server/common/shstr.C 2006/09/03 09:00:05 1.5 +++ deliantra/server/common/shstr.C 2006/09/03 11:37:25 1.6 @@ -103,15 +103,18 @@ i = ht.begin (); // go through all strings roughly once every 4 minutes - for (int n = ht.size () / 256 + 16; --n; ) + int n = ht.size () / 256 + 16; + + for (;;) { if (i == ht.end ()) { curpos = 0; return; } - - if (!refcnt (*i)) + else if (!--n) + break; + else if (!refcnt (*i)) { HT::iterator o = i++; const char *s = *o;