diff --git a/src/multiset.c b/src/multiset.c
index cf48fb0a71e85d4a77dd2d408ccaf7021fdf9c05..42deb6339b0c999d76667d9bc1289754f0a8a1e2 100644
--- a/src/multiset.c
+++ b/src/multiset.c
@@ -3898,7 +3898,7 @@ PMOD_EXPORT struct multiset *add_multisets (struct svalue *vect, int count)
   }
 
   if (!size)
-    return allocate_multiset (0, indval && MULTISET_INDVAL, cmp_less);
+    return allocate_multiset (0, indval & MULTISET_INDVAL, cmp_less);
 
   for (idx = 0;; idx++) {
     l = vect[idx].u.multiset;
@@ -3910,11 +3910,11 @@ PMOD_EXPORT struct multiset *add_multisets (struct svalue *vect, int count)
        is_identical (cmp_less, &l->msd->cmp_less) :
        TYPEOF(l->msd->cmp_less) == T_INT)) {
     res = copy_multiset (l);
-    multiset_set_flags (res, indval && MULTISET_INDVAL);
+    multiset_set_flags (res, indval & MULTISET_INDVAL);
     idx++;
   }
   else
-    res = allocate_multiset (size, indval && MULTISET_INDVAL, cmp_less);
+    res = allocate_multiset (size, indval & MULTISET_INDVAL, cmp_less);
   SET_ONERROR (uwp, do_free_multiset, res);
 
   for (; idx < count; idx++)