diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs
index cef48e52248c4358b0b633837d08c209e690a26e..b8388b6eb13bbc99b8c1a1546751821c177c024a 100644
--- a/src/fuchsia/mod.rs
+++ b/src/fuchsia/mod.rs
@@ -27,6 +27,8 @@ pub type c_ulonglong = u64;
 pub type intmax_t = i64;
 pub type uintmax_t = u64;
 
+pub type locale_t = *mut ::c_void;
+
 pub type size_t = usize;
 pub type ptrdiff_t = isize;
 pub type intptr_t = isize;
@@ -110,12 +112,7 @@ impl ::Copy for DIR {}
 impl ::Clone for DIR {
     fn clone(&self) -> DIR { *self }
 }
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
-pub enum locale_t {}
-impl ::Copy for locale_t {}
-impl ::Clone for locale_t {
-    fn clone(&self) -> locale_t { *self }
-}
+
 #[cfg_attr(feature = "extra_traits", derive(Debug))]
 pub enum fpos64_t {} // TODO: fill this out with a struct
 impl ::Copy for fpos64_t {}
diff --git a/src/unix/mod.rs b/src/unix/mod.rs
index 6240964dd5463115993a1798272b099e4be7567a..5ae272f6a104364935e238ca284d16e5e7392850 100644
--- a/src/unix/mod.rs
+++ b/src/unix/mod.rs
@@ -45,12 +45,7 @@ impl ::Copy for DIR {}
 impl ::Clone for DIR {
     fn clone(&self) -> DIR { *self }
 }
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
-pub enum locale_t {}
-impl ::Copy for locale_t {}
-impl ::Clone for locale_t {
-    fn clone(&self) -> locale_t { *self }
-}
+pub type locale_t = *mut :: c_void;
 
 s! {
     pub struct group {