diff --git a/substrate/frame/babe/src/mock.rs b/substrate/frame/babe/src/mock.rs
index 5677eb7e28e49684bdf43c77e88370d5293d5e49..c2ba3c2be06d830d03b5fec666a3f589da9b5e0d 100644
--- a/substrate/frame/babe/src/mock.rs
+++ b/substrate/frame/babe/src/mock.rs
@@ -429,7 +429,7 @@ pub fn generate_equivocation_proof(
 		System::reset_events();
 		System::initialize(&current_block, &parent_hash, &pre_digest);
 		System::set_block_number(current_block);
-		Timestamp::set_timestamp(current_block);
+		Timestamp::set_timestamp(*current_slot * Babe::slot_duration());
 		System::finalize()
 	};
 
diff --git a/substrate/frame/babe/src/tests.rs b/substrate/frame/babe/src/tests.rs
index 0859bb7a40849cc76db7aabd9a9be293757fff94..ece0883387709ebe56a6d961b87ac8de5e99fe58 100644
--- a/substrate/frame/babe/src/tests.rs
+++ b/substrate/frame/babe/src/tests.rs
@@ -659,7 +659,7 @@ fn report_equivocation_invalid_equivocation_proof() {
 		equivocation_proof.second_header = equivocation_proof.first_header.clone();
 		assert_invalid_equivocation(equivocation_proof);
 
-		// missing preruntime digest from one header
+		// missing pre-runtime digest from one header
 		let mut equivocation_proof = generate_equivocation_proof(
 			offending_validator_index as u32,
 			&offending_authority_pair,
diff --git a/substrate/frame/timestamp/src/lib.rs b/substrate/frame/timestamp/src/lib.rs
index 81ed67913c2e6b9452569fbb2f8e6072a0ee8d9d..6a7f849d1329a834fa30c7970a5d0a0cee7033da 100644
--- a/substrate/frame/timestamp/src/lib.rs
+++ b/substrate/frame/timestamp/src/lib.rs
@@ -282,6 +282,8 @@ impl<T: Config> Pallet<T> {
 	#[cfg(any(feature = "runtime-benchmarks", feature = "std"))]
 	pub fn set_timestamp(now: T::Moment) {
 		Now::<T>::put(now);
+		DidUpdate::<T>::put(true);
+		<T::OnTimestampSet as OnTimestampSet<_>>::on_timestamp_set(now);
 	}
 }
 
diff --git a/substrate/frame/timestamp/src/tests.rs b/substrate/frame/timestamp/src/tests.rs
index f52ba7849c9515823f88c023d3d200c8aa883bed..ef9fd6e39d4b547961e2058e7830508eb5232e2b 100644
--- a/substrate/frame/timestamp/src/tests.rs
+++ b/substrate/frame/timestamp/src/tests.rs
@@ -23,7 +23,7 @@ use frame_support::assert_ok;
 #[test]
 fn timestamp_works() {
 	new_test_ext().execute_with(|| {
-		Timestamp::set_timestamp(42);
+		crate::Now::<Test>::put(46);
 		assert_ok!(Timestamp::set(Origin::none(), 69));
 		assert_eq!(Timestamp::now(), 69);
 		assert_eq!(Some(69), get_captured_moment());
@@ -36,7 +36,6 @@ fn double_timestamp_should_fail() {
 	new_test_ext().execute_with(|| {
 		Timestamp::set_timestamp(42);
 		assert_ok!(Timestamp::set(Origin::none(), 69));
-		let _ = Timestamp::set(Origin::none(), 70);
 	});
 }
 
@@ -46,7 +45,7 @@ fn double_timestamp_should_fail() {
 )]
 fn block_period_minimum_enforced() {
 	new_test_ext().execute_with(|| {
-		Timestamp::set_timestamp(42);
+		crate::Now::<Test>::put(44);
 		let _ = Timestamp::set(Origin::none(), 46);
 	});
 }