diff --git a/src/lib/CoAlgMisc.ml b/src/lib/CoAlgMisc.ml
index 9718617ca4e05b62c6dbdc51e2446f55e3f89820..c465ec0a6aa1e7537335b355b99c9316e201fa02 100644
--- a/src/lib/CoAlgMisc.ml
+++ b/src/lib/CoAlgMisc.ml
@@ -863,7 +863,8 @@ let rec detClosure vars nomTbl hcF fset vset atset nomset s f =
     let sstr = string_of_int s in
     raise (C.CoAlgException ("Invalid sort (i.e. sort out of range): " ^ sstr))
   else ();
-  if C.HcFHt.mem fset.(s) f then ()
+  if C.HcFHt.mem vset.(s) f &&
+       compare (C.HcFHt.find vset.(s) f) deferral = 0 then ()
   else
     let () = C.HcFHt.add vset.(s) f deferral in
     let () = C.HcFHt.add fset.(s) f () in