diff --git a/src/destructors.md b/src/destructors.md
index 5b3f5468..ce1405e8 100644
--- a/src/destructors.md
+++ b/src/destructors.md
@@ -26,7 +26,7 @@ this is totally fine.
 For instance, a custom implementation of `Box` might write `Drop` like this:
 
 ```rust
-#![feature(unique, allocator_api)]
+#![feature(ptr_internals, allocator_api)]
 
 use std::heap::{Heap, Alloc, Layout};
 use std::mem;
@@ -52,7 +52,7 @@ use-after-free the `ptr` because when drop exits, it becomes inaccessible.
 However this wouldn't work:
 
 ```rust
-#![feature(allocator_api, unique)]
+#![feature(allocator_api, ptr_internals)]
 
 use std::heap::{Heap, Alloc, Layout};
 use std::ptr::{drop_in_place, Unique};
@@ -123,7 +123,7 @@ The classic safe solution to overriding recursive drop and allowing moving out
 of Self during `drop` is to use an Option:
 
 ```rust
-#![feature(allocator_api, unique)]
+#![feature(allocator_api, ptr_internals)]
 
 use std::heap::{Alloc, Heap, Layout};
 use std::ptr::{drop_in_place, Unique};
diff --git a/src/vec-final.md b/src/vec-final.md
index a534bcff..772e2a57 100644
--- a/src/vec-final.md
+++ b/src/vec-final.md
@@ -1,7 +1,7 @@
 # The Final Code
 
 ```rust
-#![feature(unique)]
+#![feature(ptr_internals)]
 #![feature(allocator_api)]
 
 use std::ptr::{Unique, self};
diff --git a/src/vec-layout.md b/src/vec-layout.md
index 795f1ac2..c9962e2d 100644
--- a/src/vec-layout.md
+++ b/src/vec-layout.md
@@ -71,7 +71,7 @@ take the hit and use std's Unique:
 
 
 ```rust
-#![feature(unique)]
+#![feature(ptr_internals)]
 
 use std::ptr::{Unique, self};