diff --git a/iris/proofmode/coq_tactics.v b/iris/proofmode/coq_tactics.v
index a2708b041d45ae268b9e521448b152e5f32a03b0..060f818cd72079f5a9826e21ab022840dcffb0cf 100644
--- a/iris/proofmode/coq_tactics.v
+++ b/iris/proofmode/coq_tactics.v
@@ -170,8 +170,14 @@ Proof.
       rewrite -persistent_and_affinely_sep_l. apply pure_elim_l=> ?. by rewrite HQ.
 Qed.
 
-Lemma tac_pure_revert Δ φ Q : envs_entails Δ (⌜φ⌝ → Q) → (φ → envs_entails Δ Q).
-Proof. rewrite envs_entails_eq. intros HΔ ?. by rewrite HΔ pure_True // left_id. Qed.
+Lemma tac_pure_revert Δ φ P Q :
+  FromAffinely P ⌜ φ ⌝ →
+  envs_entails Δ (P -∗ Q) →
+  (φ → envs_entails Δ Q).
+Proof.
+  rewrite /FromAffinely envs_entails_eq. intros <- -> ?.
+  by rewrite pure_True // affinely_True_emp affinely_emp left_id.
+Qed.
 
 (** * Intuitionistic *)
 Lemma tac_intuitionistic Δ i j p P P' Q :
diff --git a/iris/proofmode/ltac_tactics.v b/iris/proofmode/ltac_tactics.v
index f4da0ed786ded955e152a2d499e932b067b69484..b651b3fbf069fb0c040d11c87a71dad0c90415da 100644
--- a/iris/proofmode/ltac_tactics.v
+++ b/iris/proofmode/ltac_tactics.v
@@ -651,7 +651,10 @@ Local Tactic Notation "iForallRevert" ident(x) :=
   first [let A := type of x in idtac|fail 1 "iRevert:" x "not in scope"];
   let A := type of x in
   lazymatch type of A with
-  | Prop => revert x; first [apply tac_pure_revert|err x]
+  | Prop =>
+     revert x; first
+       [eapply tac_pure_revert; [iSolveTC (* [FromAffinely], should never fail *)|]
+       |err x]
   | _ => revert x; first [apply tac_forall_revert|err x]
   end.