diff --git a/HSH.cabal b/HSH.cabal
--- a/HSH.cabal
+++ b/HSH.cabal
@@ -1,5 +1,5 @@
 Name: HSH
-Version: 2.0.1
+Version: 2.0.2
 License: LGPL
 Maintainer: John Goerzen <jgoerzen@complete.org>
 Author: John Goerzen
@@ -27,7 +27,7 @@
   Exposed-Modules: HSH, HSH.Command, HSH.ShellEquivs, HSH.Channel
   Extensions: ExistentialQuantification, OverlappingInstances,
     UndecidableInstances, FlexibleContexts, CPP
-  Build-Depends: base >= 4 && < 5, utf8-string, process, mtl, regex-compat, MissingH>=1.0.0,
+  Build-Depends: base >= 4 && < 5, process, mtl, regex-compat, MissingH>=1.0.0,
     hslogger, filepath, regex-base, regex-posix, directory,
     bytestring
   if !os(windows)
@@ -37,7 +37,7 @@
 Executable runtests
   if flag(buildtests)
     Buildable: True
-    Build-Depends: base >= 4 && < 5, utf8-string, process, mtl, regex-compat,
+    Build-Depends: base >= 4 && < 5, process, mtl, regex-compat,
       MissingH>=1.0.0,
       hslogger, filepath, regex-base, regex-posix, directory,
       bytestring, HUnit, testpack
diff --git a/HSH/Channel.hs b/HSH/Channel.hs
--- a/HSH/Channel.hs
+++ b/HSH/Channel.hs
@@ -27,8 +27,7 @@
 
 import qualified Data.ByteString.Lazy as BSL
 import qualified Data.ByteString as BS
-import qualified Data.ByteString.Lazy.UTF8 as UTF8
-import qualified System.IO.UTF8 as IOUTF8
+import qualified Data.ByteString.Lazy.Char8 as BSLC
 import System.IO
 import Control.Concurrent
 
@@ -41,7 +40,7 @@
 chanAsString :: Channel -> IO String
 chanAsString (ChanString s) = return s
 chanAsString (ChanBSL s) = return . bsl2str $ s
-chanAsString (ChanHandle h) = IOUTF8.hGetContents h
+chanAsString (ChanHandle h) = hGetContents h
 
 chanAsBSL :: Channel -> IO BSL.ByteString
 chanAsBSL (ChanString s) = return . str2bsl $ s
@@ -55,7 +54,7 @@
 
 {- | Writes the Channel to the given Handle. -}
 chanToHandle :: Channel -> Handle -> IO ()
-chanToHandle (ChanString s) h = IOUTF8.hPutStr h s
+chanToHandle (ChanString s) h = hPutStr h s
 chanToHandle (ChanBSL s) h = BSL.hPut h s
 chanToHandle (ChanHandle srchdl) desthdl = forkIO copier >> return ()
     where copier = do c <- BSL.hGetContents srchdl
@@ -75,8 +74,8 @@
 
                     
 str2bsl :: String -> BSL.ByteString
-str2bsl = UTF8.fromString
+str2bsl = BSLC.pack
 
 bsl2str :: BSL.ByteString -> String
-bsl2str = UTF8.toString
+bsl2str = BSLC.unpack
 
diff --git a/HSH/Command.hs b/HSH/Command.hs
--- a/HSH/Command.hs
+++ b/HSH/Command.hs
@@ -52,7 +52,6 @@
 import System.Environment(getEnvironment)
 import qualified Data.ByteString.Lazy as BSL
 import qualified Data.ByteString as BS
-import qualified Data.ByteString.Lazy.UTF8 as UTF8
 import HSH.Channel
 
 d, dr :: String -> IO ()
