diff --git a/theories/collections.v b/theories/collections.v
index e0d70b8d77f6b29f66d41c01970d77bb82ef74a8..ada7f6b819b236bfdb7f9c8c5b415628ca33f27e 100644
--- a/theories/collections.v
+++ b/theories/collections.v
@@ -265,7 +265,7 @@ Ltac set_unfold :=
 [set_solver] already. We use the [naive_solver] tactic as a substitute.
 This tactic either fails or proves the goal. *)
 Tactic Notation "set_solver" "by" tactic3(tac) :=
-  try done;
+  try (reflexivity || eassumption);
   intros; setoid_subst;
   set_unfold;
   intros; setoid_subst;