diff --git a/src/bytes.rs b/src/bytes.rs
index f5ac05a67b101037abf474cbd853c42a0686c49f..3228474563afffbfbc05bddfa2b6ea340dfb9f11 100644
--- a/src/bytes.rs
+++ b/src/bytes.rs
@@ -3,7 +3,7 @@ use buf::Iter;
 use debug;
 
 use std::{cmp, fmt, mem, hash, ops, slice, ptr, usize};
-use std::borrow::Borrow;
+use std::borrow::{Borrow, BorrowMut};
 use std::io::Cursor;
 use std::sync::atomic::{self, AtomicUsize, AtomicPtr};
 use std::sync::atomic::Ordering::{Relaxed, Acquire, Release, AcqRel};
@@ -1622,6 +1622,12 @@ impl Borrow<[u8]> for BytesMut {
     }
 }
 
+impl BorrowMut<[u8]> for BytesMut {
+    fn borrow_mut(&mut self) -> &mut [u8] {
+        self.as_mut()
+    }
+}
+
 impl fmt::Write for BytesMut {
     #[inline]
     fn write_str(&mut self, s: &str) -> fmt::Result {