diff --git a/src/imp/buf/mod.rs b/src/imp/buf/mod.rs
index d13a99bad069d1264b4d5b9854b2b3249d270a66..8c7644f89dd0dc4c46accd004eae824bcb0772b8 100644
--- a/src/imp/buf/mod.rs
+++ b/src/imp/buf/mod.rs
@@ -399,6 +399,14 @@ impl<'a> IntoBuf for &'a &'static [u8] {
     }
 }
 
+impl IntoBuf for Vec<u8> {
+    type Buf = io::Cursor<Vec<u8>>;
+
+    fn into_buf(self) -> Self::Buf {
+        io::Cursor::new(self)
+    }
+}
+
 impl<'a> IntoBuf for &'a Vec<u8> {
     type Buf = io::Cursor<&'a [u8]>;
 
@@ -407,6 +415,14 @@ impl<'a> IntoBuf for &'a Vec<u8> {
     }
 }
 
+impl IntoBuf for () {
+    type Buf = io::Cursor<&'static [u8]>;
+
+    fn into_buf(self) -> Self::Buf {
+        io::Cursor::new(&[])
+    }
+}
+
 impl<'a> IntoBuf for &'a () {
     type Buf = io::Cursor<&'static [u8]>;