--- deliantra/Deliantra-Client/DC.pm 2006/08/15 06:30:05 1.115 +++ deliantra/Deliantra-Client/DC.pm 2006/08/18 01:01:00 1.116 @@ -71,7 +71,12 @@ sub put($$$) { my ($db, $key, $data) = @_; - $DB_SYNC{$db} = AnyEvent->timer (after => 5, cb => sub { $db->db_sync }); + my $key = $db + 0; + Scalar::Util::weaken $db; + $DB_SYNC{$key} ||= AnyEvent->timer (after => 5, cb => sub { + delete $DB_SYNC{$key}; + $db->db_sync if $db; + }); $db->db_put ($key => $data) }