diff --git a/src/multiset.c b/src/multiset.c
index 95b78463f0a6326f7b33bd0fec300c1e182eca50..46f27763bc4c60098b266eed6b560da97e506094 100644
--- a/src/multiset.c
+++ b/src/multiset.c
@@ -2,7 +2,7 @@
 || This file is part of Pike. For copyright information see COPYRIGHT.
 || Pike is distributed under GPL, LGPL and MPL. See the file COPYING
 || for more information.
-|| $Id: multiset.c,v 1.117 2009/04/06 00:36:54 mast Exp $
+|| $Id: multiset.c,v 1.118 2009/08/10 14:27:47 grubba Exp $
 */
 
 #include "global.h"
@@ -2356,6 +2356,7 @@ PMOD_EXPORT ptrdiff_t multiset_add_after (struct multiset *l,
 	node = SHIFT_HDRPTR (node, msd, l->msd);
 	if (node != HDR (low_multiset_first (l->msd))) {
 	  RBSTACK_FREE (rbstack);
+	  UNSET_ONERROR (uwp2);
 	  continue;
 	}
 	rbstack_shift (rbstack, HDR (msd->nodes), HDR (l->msd->nodes));