diff --git a/src/ciecam.rs b/src/ciecam.rs
index 3aef833e83459447bbcd63ab01def3eb6e2f889c..ba8b8197149d55360eb9bca4576261d4b2ae1e45 100644
--- a/src/ciecam.rs
+++ b/src/ciecam.rs
@@ -1,6 +1,6 @@
 use super::*;
 use std::ptr;
-use std::mem;
+use std::mem::MaybeUninit;
 
 /// CIE CAM02
 pub struct CIECAM02 {
@@ -28,18 +28,18 @@ impl CIECAM02 {
     /// Evaluates the CAM02 model in the forward direction
     pub fn forward(&mut self, input: &CIEXYZ) -> JCh {
         unsafe {
-            let mut out = mem::uninitialized();
-            ffi::cmsCIECAM02Forward(self.handle, input, &mut out);
-            out
+            let mut out = MaybeUninit::uninit();
+            ffi::cmsCIECAM02Forward(self.handle, input, out.as_mut_ptr());
+            out.assume_init()
         }
     }
 
     /// Evaluates the CAM02 model in the reverse direction
     pub fn reverse(&mut self, input: &JCh) -> CIEXYZ {
         unsafe {
-            let mut out = mem::uninitialized();
-            ffi::cmsCIECAM02Reverse(self.handle, input, &mut out);
-            out
+            let mut out = MaybeUninit::uninit();
+            ffi::cmsCIECAM02Reverse(self.handle, input, out.as_mut_ptr());
+            out.assume_init()
         }
     }
 }