diff --git a/src/lib/CoAlgLogicUtils.ml b/src/lib/CoAlgLogicUtils.ml
index 99ab6370a835d4c98e7315ba141a6392cffa1f2e..9230c11d95e284da7da9719d2c8a0ac9d9d8958d 100644
--- a/src/lib/CoAlgLogicUtils.ml
+++ b/src/lib/CoAlgLogicUtils.ml
@@ -91,11 +91,16 @@ let maxDisjoints sort (a: bset) : bset list =
         print_endline ("Cliqu: "^ String.concat "," s)
     );
     *)
-    let tmpf : bset -> int -> bset =
-        (fun bs f -> bsetAdd bs (lfFromInt f) ; bs)
-    in
-    List.map (fun x -> List.fold_left tmpf (bsetMakeRealEmpty ()) x)
-             (List.map S.elements intlist)
+    flip List.map intlist (fun elements ->
+        (* for each maximal clique "elements", do: *)
+        let elements = S.elements elements in (* obtain a list of ints *)
+        let elements = L.map lfFromInt elements in (* convert them to local formulas *)
+        (* throw them into a bset *)
+        let bs = (bsetMakeRealEmpty ()) in
+        List.iter (bsetAdd bs) elements;
+        bs
+    )
+
 
 let string_of_coalition sort bs =
     let modlist = bsetFold (fun x l -> x::l) bs [] in