diff --git a/src/header/poll/mod.rs b/src/header/poll/mod.rs
index ccbef85c4800f450b85219d271f252528a9dbbd4..0ca503473d1de34344512e6db5e2797db7f25185 100644
--- a/src/header/poll/mod.rs
+++ b/src/header/poll/mod.rs
@@ -70,8 +70,7 @@ pub fn poll_epoll(fds: &mut [pollfd], timeout: c_int) -> c_int {
         return -1;
     }
 
-    for i in 0..res as usize {
-        let event = &events[i];
+    for event in events.iter().take(res as usize) {
         let pi = unsafe { event.data.u64 as usize };
         // TODO: Error status when fd does not match?
         if let Some(pfd) = fds.get_mut(pi) {
diff --git a/src/header/sys_select/mod.rs b/src/header/sys_select/mod.rs
index 0c5614b950aa40cfc834560b99fbf83909fc54c8..79869a82e48a055b127236c8a78458436d59bfdd 100644
--- a/src/header/sys_select/mod.rs
+++ b/src/header/sys_select/mod.rs
@@ -42,9 +42,9 @@ pub fn select_epoll(
         File::new(epfd)
     };
 
-    let mut read_bitset : Option<&mut bitset> = readfds.map(|fd_set| &mut fd_set.fds_bits);
-    let mut write_bitset : Option<&mut bitset> = writefds.map(|fd_set| &mut fd_set.fds_bits);
-    let mut except_bitset : Option<&mut bitset> = exceptfds.map(|fd_set| &mut fd_set.fds_bits);
+    let mut read_bitset: Option<&mut bitset> = readfds.map(|fd_set| &mut fd_set.fds_bits);
+    let mut write_bitset: Option<&mut bitset> = writefds.map(|fd_set| &mut fd_set.fds_bits);
+    let mut except_bitset: Option<&mut bitset> = exceptfds.map(|fd_set| &mut fd_set.fds_bits);
 
     // Keep track of the number of file descriptors that do not support epoll
     let mut not_epoll = 0;
@@ -129,8 +129,7 @@ pub fn select_epoll(
     }
 
     let mut count = not_epoll;
-    for i in 0..res as usize {
-        let event = &events[i];
+    for event in events.iter().take(res as usize) {
         let fd = unsafe { event.data.fd };
         // TODO: Error status when fd does not match?
         if fd >= 0 && fd < FD_SETSIZE as c_int {
diff --git a/src/header/time/mod.rs b/src/header/time/mod.rs
index 2b97d19f5d1fe35bc6532e54f0bd02bac2ba3d14..1e1af39ab219058339313a6577d12f672beea217 100644
--- a/src/header/time/mod.rs
+++ b/src/header/time/mod.rs
@@ -1,7 +1,5 @@
 //! time implementation for Redox, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/time.h.html
 
-use core::mem::transmute;
-
 use header::errno::EIO;
 use platform;
 use platform::types::*;
@@ -74,7 +72,7 @@ pub struct sigevent;
 
 #[no_mangle]
 pub unsafe extern "C" fn asctime(timeptr: *const tm) -> *mut c_char {
-    asctime_r(timeptr, transmute::<&mut _, *mut c_char>(&mut ASCTIME))
+    asctime_r(timeptr, &mut ASCTIME as *mut [i8; 26] as *mut i8)
 }
 
 #[no_mangle]
diff --git a/src/ld_so/linker.rs b/src/ld_so/linker.rs
index f426cd3e37b1ea2c34c27ecf1e3aaf3e29d6cda9..aebd2a7980b611aece888c399bc0ba08f3788793 100644
--- a/src/ld_so/linker.rs
+++ b/src/ld_so/linker.rs
@@ -480,12 +480,11 @@ impl Linker {
                     }
                 };
 
-                match rel.r_type {
-                    reloc::R_X86_64_IRELATIVE => unsafe {
+                if rel.r_type == reloc::R_X86_64_IRELATIVE {
+                    unsafe {
                         let f: unsafe extern "C" fn() -> u64 = mem::transmute(b + a);
                         set_u64(f());
-                    },
-                    _ => (),
+                    }
                 }
             }
 
diff --git a/src/platform/rlb.rs b/src/platform/rlb.rs
index e52b1bab1e60e65c089a3792a6f2813f6c8eef9a..b341cbc98f096ab1f298ffde6418c7d1d0ecde68 100644
--- a/src/platform/rlb.rs
+++ b/src/platform/rlb.rs
@@ -32,6 +32,7 @@ impl RawLineBuffer {
 
     // Can't use iterators because we want to return a reference.
     // See https://stackoverflow.com/a/30422716/5069285
+    #[allow(clippy::should_implement_trait)]
     pub fn next(&mut self) -> Line {
         // Remove last line
         if let Some(newline) = self.newline {