diff --git a/binary-file.cabal b/binary-file.cabal
--- a/binary-file.cabal
+++ b/binary-file.cabal
@@ -2,7 +2,7 @@
 cabal-version:	>= 1.8
 
 name:		binary-file
-version:	0.15.10
+version:	0.15.11
 stability:	experimental
 author:		Yoshikuni Jujo <PAF01143@nifty.ne.jp>
 maintainer:	Yoshikuni Jujo <PAF01143@nifty.ne.jp>
@@ -90,7 +90,7 @@
 source-repository	this
     type:	git
     location:	git://github.com/YoshikuniJujo/binary-file.git
-    tag:	0.15.10
+    tag:	0.15.11
 
 library
     hs-source-dirs:	src
diff --git a/src/File/Binary/Instances.hs b/src/File/Binary/Instances.hs
--- a/src/File/Binary/Instances.hs
+++ b/src/File/Binary/Instances.hs
@@ -5,8 +5,9 @@
 
 import Prelude hiding (take, drop)
 import File.Binary.Classes (Field(..), Binary(..))
-import Data.ByteString.Lazy (ByteString, take, drop, toChunks, fromChunks)
-import Data.ByteString.Lazy.Char8 (pack, unpack)
+import Data.Word (Word8)
+import Data.ByteString.Lazy (ByteString, take, drop, toChunks, fromChunks, pack, unpack)
+import qualified Data.ByteString.Lazy.Char8 as BSLC (pack, unpack)
 import qualified Data.ByteString as BS (ByteString, take, drop, concat)
 import Control.Monad (replicateM)
 import "monads-tf" Control.Monad.State (StateT(..), gets)
@@ -28,6 +29,11 @@
 
 instance Field Char where
 	type FieldArgument Char = ()
+	fromBinary _ = return . first (head . BSLC.unpack) . getBytes 1
+	toBinary _ = makeBinary . BSLC.pack . (: [])
+
+instance Field Word8 where
+	type FieldArgument Word8 = ()
 	fromBinary _ = return . first (head . unpack) . getBytes 1
 	toBinary _ = makeBinary . pack . (: [])
 
@@ -49,8 +55,8 @@
 --------------------------------------------------------------------------------
 
 instance Binary String where
-	getBytes n = first pack . splitAt n
-	makeBinary = unpack
+	getBytes n = first BSLC.pack . splitAt n
+	makeBinary = BSLC.unpack
 
 instance Binary ByteString where
 	getBytes n = take (fromIntegral n) &&& drop (fromIntegral n)
