diff --git a/substrate/frame/proxy/src/lib.rs b/substrate/frame/proxy/src/lib.rs
index d98534d16a21b5d4440507d9b5edf0304e49e788..dfe8c86ca50972f15f05bde7f9f0e0ecbbee01b4 100644
--- a/substrate/frame/proxy/src/lib.rs
+++ b/substrate/frame/proxy/src/lib.rs
@@ -183,8 +183,6 @@ pub mod pallet {
 		/// Dispatch the given `call` from an account that the sender is authorised for through
 		/// `add_proxy`.
 		///
-		/// Removes any corresponding announcement(s).
-		///
 		/// The dispatch origin for this call must be _Signed_.
 		///
 		/// Parameters:
diff --git a/substrate/frame/proxy/src/tests.rs b/substrate/frame/proxy/src/tests.rs
index 3eb3ab370533235a19ab8052639e2381205aa504..0e7db3512f15bda84b3db81931b82a331db884f8 100644
--- a/substrate/frame/proxy/src/tests.rs
+++ b/substrate/frame/proxy/src/tests.rs
@@ -288,6 +288,23 @@ fn announcer_must_be_proxy() {
 	});
 }
 
+#[test]
+fn calling_proxy_doesnt_remove_announcement() {
+	new_test_ext().execute_with(|| {
+		assert_ok!(Proxy::add_proxy(RuntimeOrigin::signed(1), 2, ProxyType::Any, 0));
+
+		let call = Box::new(call_transfer(6, 1));
+		let call_hash = BlakeTwo256::hash_of(&call);
+
+		assert_ok!(Proxy::announce(RuntimeOrigin::signed(2), 1, call_hash));
+		assert_ok!(Proxy::proxy(RuntimeOrigin::signed(2), 1, None, call));
+
+		// The announcement is not removed by calling proxy.
+		let announcements = Announcements::<Test>::get(2);
+		assert_eq!(announcements.0, vec![Announcement { real: 1, call_hash, height: 1 }]);
+	});
+}
+
 #[test]
 fn delayed_requires_pre_announcement() {
 	new_test_ext().execute_with(|| {