--- deliantra/server/common/object.C 2007/09/30 20:22:15 1.191 +++ deliantra/server/common/object.C 2007/10/12 19:13:25 1.192 @@ -307,8 +307,17 @@ ob2->optimise (); if (ob1->self || ob2->self) - if (!cfperl_can_merge (ob1, ob2)) - return 0; + { + int k1 = ob1->self ? HvTOTALKEYS (SvRV (ob1->self)) : 0; + int k2 = ob2->self ? HvTOTALKEYS (SvRV (ob2->self)) : 0; + + if (k1 != k2) + return 0; + else if (k1 == 0) + return 1; + else if (!cfperl_can_merge (ob1, ob2)) + return 0; + } } /* Everything passes, must be OK. */