diff --git a/src/libextra/arc.rs b/src/libextra/arc.rs
index 0618e7aaf65..a59f59deee3 100644
--- a/src/libextra/arc.rs
+++ b/src/libextra/arc.rs
@@ -263,7 +263,7 @@ impl Drop for PoisonOnFail {
 
 fn PoisonOnFail<'r>(failed: &'r mut bool) -> PoisonOnFail {
     PoisonOnFail {
-        failed: ptr::to_mut_unsafe_ptr(failed)
+        failed: failed
     }
 }
 
diff --git a/src/librustc/lib/llvm.rs b/src/librustc/lib/llvm.rs
index b664abef343..f6beb078e46 100644
--- a/src/librustc/lib/llvm.rs
+++ b/src/librustc/lib/llvm.rs
@@ -2117,8 +2117,7 @@ pub fn struct_tys(struct_ty: TypeRef) -> ~[TypeRef] {
             return ~[];
         }
         let mut elts = vec::from_elem(n_elts, ptr::null());
-        llvm::LLVMGetStructElementTypes(
-            struct_ty, ptr::to_mut_unsafe_ptr(&mut elts[0]));
+        llvm::LLVMGetStructElementTypes(struct_ty, &mut elts[0]);
         return elts;
     }
 }
diff --git a/src/librustc/middle/trans/cabi_mips.rs b/src/librustc/middle/trans/cabi_mips.rs
index 5ef5c4c35b1..6be398c0bb2 100644
--- a/src/librustc/middle/trans/cabi_mips.rs
+++ b/src/librustc/middle/trans/cabi_mips.rs
@@ -38,8 +38,7 @@ fn struct_tys(ty: TypeRef) -> ~[TypeRef] {
         return ~[];
     }
         let mut elts = vec::from_elem(n as uint, ptr::null());
-        llvm::LLVMGetStructElementTypes(ty,
-            ptr::to_mut_unsafe_ptr(&mut elts[0]));
+        llvm::LLVMGetStructElementTypes(ty, &mut elts[0]);
         return elts;
     }
 }
diff --git a/src/librustc/middle/trans/common.rs b/src/librustc/middle/trans/common.rs
index df5000a543c..78aca4c831f 100644
--- a/src/librustc/middle/trans/common.rs
+++ b/src/librustc/middle/trans/common.rs
@@ -964,9 +964,7 @@ pub fn T_tydesc_field(cx: @CrateContext, field: uint) -> TypeRef {
         let mut tydesc_elts: ~[TypeRef] =
             vec::from_elem::<TypeRef>(abi::n_tydesc_fields,
                                      T_nil());
-        llvm::LLVMGetStructElementTypes(
-            cx.tydesc_type,
-            ptr::to_mut_unsafe_ptr(&mut tydesc_elts[0]));
+        llvm::LLVMGetStructElementTypes(cx.tydesc_type, &mut tydesc_elts[0]);
         let t = llvm::LLVMGetElementType(tydesc_elts[field]);
         return t;
     }
diff --git a/src/libstd/os.rs b/src/libstd/os.rs
index 446804f7b30..6ce6d81bf24 100644
--- a/src/libstd/os.rs
+++ b/src/libstd/os.rs
@@ -1179,7 +1179,7 @@ pub fn real_args() -> ~[~str] {
 #[cfg(windows)]
 pub fn real_args() -> ~[~str] {
     let mut nArgs: c_int = 0;
-    let lpArgCount = ptr::to_mut_unsafe_ptr(&mut nArgs);
+    let lpArgCount: *mut c_int = &mut nArgs;
     let lpCmdLine = unsafe { GetCommandLineW() };
     let szArgList = unsafe { CommandLineToArgvW(lpCmdLine, lpArgCount) };
 
diff --git a/src/libstd/vec.rs b/src/libstd/vec.rs
index 6137b589bdb..7c52ccc967e 100644
--- a/src/libstd/vec.rs
+++ b/src/libstd/vec.rs
@@ -1315,8 +1315,8 @@ pub fn swap<T>(v: &mut [T], a: uint, b: uint) {
     unsafe {
         // Can't take two mutable loans from one vector, so instead just cast
         // them to their raw pointers to do the swap
-        let pa: *mut T = ptr::to_mut_unsafe_ptr(&mut v[a]);
-        let pb: *mut T = ptr::to_mut_unsafe_ptr(&mut v[b]);
+        let pa: *mut T = &mut v[a];
+        let pb: *mut T = &mut v[b];
         ptr::swap_ptr(pa, pb);
     }
 }
diff --git a/src/test/run-pass/swap-overlapping.rs b/src/test/run-pass/swap-overlapping.rs
index 07d1226d382..927ec699727 100644
--- a/src/test/run-pass/swap-overlapping.rs
+++ b/src/test/run-pass/swap-overlapping.rs
@@ -26,8 +26,7 @@ pub fn main() {
 
 fn do_swap(test: &mut TestDescAndFn) {
     unsafe {
-        ptr::swap_ptr(ptr::to_mut_unsafe_ptr(test),
-                      ptr::to_mut_unsafe_ptr(test));
+        ptr::swap_ptr(test, test);
     }
 }