diff --git a/src/ws/frame.rs b/src/ws/frame.rs
index 8eaef72d..5e88758d 100644
--- a/src/ws/frame.rs
+++ b/src/ws/frame.rs
@@ -1,5 +1,5 @@
 #![cfg_attr(feature = "cargo-clippy", allow(cast_ptr_alignment))]
-use byteorder::{BigEndian, ByteOrder, NetworkEndian};
+use byteorder::{ByteOrder, NetworkEndian};
 use bytes::{BufMut, Bytes, BytesMut};
 use futures::{Async, Poll, Stream};
 use rand;
@@ -312,20 +312,12 @@ impl Frame {
         } else if payload_len <= 65_535 {
             let mut buf = BytesMut::with_capacity(p_len + 4);
             buf.put_slice(&[one, two | 126]);
-            {
-                let buf_mut = unsafe { buf.bytes_mut() };
-                BigEndian::write_u16(&mut buf_mut[..2], payload_len as u16);
-            }
-            unsafe { buf.advance_mut(2) };
+            buf.put_u16_be(payload_len as u16);
             buf
         } else {
             let mut buf = BytesMut::with_capacity(p_len + 10);
             buf.put_slice(&[one, two | 127]);
-            {
-                let buf_mut = unsafe { buf.bytes_mut() };
-                BigEndian::write_u64(&mut buf_mut[..8], payload_len as u64);
-            }
-            unsafe { buf.advance_mut(8) };
+            buf.put_u64_be(payload_len as u64);
             buf
         };