diff --git a/CoAlgLogicUtils.ml b/CoAlgLogicUtils.ml
index a7995bbf034a1513e8b4013642f8aa17c9872f5b..a9e4604dfe0053f3d66717d1e435ea8b80bf965a 100644
--- a/CoAlgLogicUtils.ml
+++ b/CoAlgLogicUtils.ml
@@ -80,7 +80,8 @@ let maxDisjoints sort (a: bset) : bset list =
     let tmpf : bset -> int -> bset =
         (fun bs f -> bsetAdd bs (lfFromInt f) ; bs)
     in
-    List.map (List.fold_left tmpf (bsetMake ())) (List.map S.elements intlist)
+    List.map (List.fold_left tmpf (bsetMake ()))
+             (List.map S.elements intlist)
 
 
 
diff --git a/CoAlgLogics.ml b/CoAlgLogics.ml
index e9629ea11908ce486da2b28e5759fbdfe4eb7b16..0fb82d0fe7c06d959e1ab38ef98b6011fd98c6a3 100644
--- a/CoAlgLogics.ml
+++ b/CoAlgLogics.ml
@@ -201,7 +201,7 @@ let mkRule_CL sort bs sl =
   let boxes = bsetFilter bs (fun f -> lfGetType sort f = EnforcesF) in
   let diamonds = bsetFilter bs (fun f -> lfGetType sort f = AllowsF) in
   let disjoints = maxDisjoints sort boxes in
-  let nCands = bsetMake () in (* all N-diamonds *)
+  let nCands = bsetMakeRealEmpty () in (* all N-diamonds *)
   let hasFullAgentList formula =
     let aglist = lfGetDestAg sort formula in
     let value = TArray.all (fun x -> TArray.elem x aglist) agents in
@@ -230,7 +230,7 @@ let mkRule_CL sort bs sl =
            ————————————————————————————————
               a_i       /\     b /\ c_j
         *)
-        let children = bsetMake () in
+        let children = bsetMakeRealEmpty () in
         List.iter (bsetAdd children) (b::c_j) ;
         List.iter (bsetAdd children) (a_i) ;
         ((fun bs1 -> bs), [(s1, children)])::acc
@@ -244,7 +244,7 @@ let mkRule_CL sort bs sl =
        ————————————
            a_i
     *)
-    let a_i : bset = bsetMake () in
+    let a_i : bset = bsetMakeRealEmpty () in
     bsetIter (fun f -> bsetAdd a_i (lfGetDest1 sort f)) coalitions ;
     ((fun bs1 -> bs), [(s1, a_i)])::acc
   in
diff --git a/CoAlgMisc.ml b/CoAlgMisc.ml
index e6e165b2894d5ed7ee5f8da177c17a5735057dfd..d8a6720cc5a38d9ee574bac256e45e8a1af2b9ec 100644
--- a/CoAlgMisc.ml
+++ b/CoAlgMisc.ml
@@ -426,11 +426,15 @@ let bsetMake () = S.makeBS ()
 let bsetAdd bs lf = S.addBSNoChk bs lf
 let bsetMem bs lf = S.memBS bs lf
 let bsetRem bs lf = S.remBS bs lf
+let bsetMakeRealEmpty () =
+    let res = bsetMake () in
+    bsetRem res !S.bstrue; (* remove bstrue which is initially in an empty bset *)
+    res
 let bsetCopy bs = S.copyBS bs
 let bsetFold fkt bs init = S.foldBS fkt bs init
 let bsetIter fkt bset = S.iterBS fkt bset
 let bsetFilter (a: bset) (f: localFormula -> bool) : bset =
-    let res = bsetMake () in
+    let res = bsetMakeRealEmpty () in
     bsetIter (fun form -> if (f form) then bsetAdd res form else ()) a;
     res
 
diff --git a/CoAlgMisc.mli b/CoAlgMisc.mli
index de8f1c5856171a713945353e1ef986f5987d63bd..a8ecb13f5b9846d29120663db8df2aabade852db 100644
--- a/CoAlgMisc.mli
+++ b/CoAlgMisc.mli
@@ -245,7 +245,8 @@ val nhtFold : (nominal -> bset -> 'a -> 'a) -> nht -> 'a -> 'a
 (*         local formulae and @-formulae                                     *)
 (*****************************************************************************)
 
-val bsetMake : unit -> bset
+val bsetMake : unit -> bset (* a new bset which only contains True *)
+val bsetMakeRealEmpty : unit -> bset (* a new bset without containing True *)
 val bsetAdd : bset -> localFormula -> unit
 val bsetMem : bset -> localFormula -> bool
 val bsetFold : (localFormula -> 'a -> 'a) -> bset -> 'a -> 'a