diff --git a/src/iterators.cmod b/src/iterators.cmod index ef290dcb8f3d22ffecef75a6d43342d3ea77bdbf..d2e34ae9c06ee764173bcbec77d67c536cd5e83c 100644 --- a/src/iterators.cmod +++ b/src/iterators.cmod @@ -666,8 +666,9 @@ PIKECLASS multiset_iterator { struct object *o = low_clone (multiset_iterator_program); struct multiset_iterator_struct *copy = OBJ2_MULTISET_ITERATOR (o); - if ((copy->l = li->l)) - add_ref(li->l); + if (!(copy->l = li->l)) + return o; + add_ref(copy->l); if ((copy->nodepos = li->nodepos) >= 0) add_msnode_ref (copy->l); if ((copy->lock_index = li->lock_index)) { add_ref (copy->l->msd);