diff --git a/src/lib/shell/variables/mod.rs b/src/lib/shell/variables/mod.rs
index c1b7adf7e6247ab0272cd96e315294976d141844..dcac0a6df6474f12fea4126c013eee5abc567b5e 100644
--- a/src/lib/shell/variables/mod.rs
+++ b/src/lib/shell/variables/mod.rs
@@ -767,8 +767,15 @@ mod tests {
         assert_eq!("BAR", &expanded);
     }
 
+    use std::sync::Mutex;
+    lazy_static! {
+        static ref ENVLOCK: Mutex<()> = Mutex::new(());
+    }
+
     #[test]
     fn minimal_directory_var_should_compact_path() {
+        // Make sure we dont read the other tests writes to env
+        let _guard = ENVLOCK.lock().unwrap();
         let variables = Variables::default();
         env::set_var("PWD", "/var/log/nix");
         assert_eq!(
@@ -782,6 +789,8 @@ mod tests {
 
     #[test]
     fn minimal_directory_var_shouldnt_compact_path() {
+        // Make sure we dont read the other tests writes to env
+        let _guard = ENVLOCK.lock().unwrap();
         let variables = Variables::default();
         env::set_var("PWD", "/var/log");
         assert_eq!(