diff --git a/src/sync/mod.rs b/src/sync/mod.rs
index 5abb86e2ba7720cdb558c07e5ce6e4776d1d2cdc..a77e4aa3bf65c05da3db1b467eb0bb89fea71e5c 100644
--- a/src/sync/mod.rs
+++ b/src/sync/mod.rs
@@ -56,14 +56,26 @@ impl FutexAtomicTy for AtomicU32 {
     type Ty = u32;
 
     fn ptr(&self) -> *mut u32 {
-        AtomicU32::as_ptr(self)
+        // TODO: Change when Redox's toolchain is updated. This is not about targets, but compiler
+        // versions!
+
+        #[cfg(target_os = "redox")]
+        return AtomicU32::as_ptr(self);
+
+        #[cfg(target_os = "linux")]
+        return AtomicU32::as_mut_ptr(self);
     }
 }
 impl FutexAtomicTy for AtomicI32 {
     type Ty = i32;
 
     fn ptr(&self) -> *mut i32 {
-        AtomicI32::as_ptr(self)
+        // TODO
+        #[cfg(target_os = "redox")]
+        return AtomicI32::as_ptr(self);
+
+        #[cfg(target_os = "linux")]
+        return AtomicI32::as_mut_ptr(self);
     }
 }