diff --git a/library/std/src/sync/mutex.rs b/library/std/src/sync/mutex.rs
index fe2aca031a248..4a0cd6cff98c6 100644
--- a/library/std/src/sync/mutex.rs
+++ b/library/std/src/sync/mutex.rs
@@ -500,6 +500,12 @@ impl<T: ?Sized + Default> Default for Mutex<T> {
     }
 }
 
+impl<'a, T> From<MutexGuard<'a, T>> for &'a Mutex<T>{
+    fn from(value: MutexGuard<'a, T>) -> Self{
+        value.lock
+    }
+}
+
 #[stable(feature = "rust1", since = "1.0.0")]
 impl<T: ?Sized + fmt::Debug> fmt::Debug for Mutex<T> {
     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {