diff --git a/src/context/context.rs b/src/context/context.rs
index bf34057d31d3398fabcb26d6c8ea49c3b01bdbc9..622364196ee35fd5bae57b904051232a95f09753 100644
--- a/src/context/context.rs
+++ b/src/context/context.rs
@@ -17,7 +17,7 @@ use crate::arch::{interrupt::InterruptStack, paging::PAGE_SIZE};
 use crate::common::unique::Unique;
 use crate::context::arch;
 use crate::context::file::{FileDescriptor, FileDescription};
-use crate::context::memory::{UserGrants, Memory, SharedMemory, Tls};
+use crate::context::memory::{UserGrants, Memory, SharedMemory};
 use crate::ipi::{ipi, IpiKind, IpiTarget};
 use crate::scheme::{SchemeNamespace, FileHandle};
 use crate::sync::WaitMap;
diff --git a/src/context/memory.rs b/src/context/memory.rs
index d422457ff9018eb729f2f1104e502b161581bfef..dc7b4ee37887ceccd5975f665eb29a513c2e8b85 100644
--- a/src/context/memory.rs
+++ b/src/context/memory.rs
@@ -813,25 +813,6 @@ impl Drop for Memory {
     }
 }
 
-#[derive(Debug)]
-pub struct Tls {
-    pub master: VirtualAddress,
-    pub file_size: usize,
-    pub mem: Memory,
-    pub offset: usize,
-}
-
-impl Tls {
-    /// Load TLS data from master
-    pub unsafe fn load(&mut self) {
-        intrinsics::copy(
-            self.master.data() as *const u8,
-            (self.mem.start_address().data() + self.offset) as *mut u8,
-            self.file_size
-        );
-    }
-}
-
 pub const DANGLING: usize = 1 << (usize::BITS - 2);
 
 #[cfg(tests)]