diff --git a/hcoap.cabal b/hcoap.cabal
--- a/hcoap.cabal
+++ b/hcoap.cabal
@@ -1,6 +1,6 @@
 copyright:           Copyright (c) 2016, Ulf Lilleengen
 name:                hcoap
-version:             0.1.0.1
+version:             0.1.0.2
 synopsis:            Library for handling CoAP protocol
 license:             BSD3
 license-file:        LICENSE
@@ -23,7 +23,7 @@
   exposed-modules: Network.CoAP.Server, Network.CoAP.Client, Network.CoAP.Message, Network.CoAP.Transport
   other-modules: Network.CoAP.Types, Network.CoAP.MessageCodec, Network.CoAP.Messaging
 
-  build-depends:       base >= 4.8 && < 4.9,
+  build-depends:       base >= 4 && < 5,
                        bytestring >= 0.10 && < 0.11,
                        binary >= 0.7 && < 0.8,
                        network >= 2.6 && < 2.7,
diff --git a/src/Network/CoAP/MessageCodec.hs b/src/Network/CoAP/MessageCodec.hs
--- a/src/Network/CoAP/MessageCodec.hs
+++ b/src/Network/CoAP/MessageCodec.hs
@@ -5,11 +5,11 @@
 
 import Debug.Trace
 import Network.CoAP.Types
-import Data.ByteString.Lazy
+import Data.ByteString.Lazy hiding (map)
 import qualified Data.ByteString as BS
 import Data.Word
 import Data.Maybe
-import Data.List (sortOn)
+import Data.List (sortBy)
 import Data.Binary hiding (encode, decode)
 import qualified Data.Binary as DB
 import Data.Binary.Get
@@ -323,7 +323,7 @@
 
 putOptions :: [Option] -> Put
 putOptions options = do
-  let sortedOptions = sortOn (\o -> fst (encodeOption o)) options
+  let sortedOptions = sortBy (\x y -> compare (fst (encodeOption x)) (fst (encodeOption y))) options
   putOptionsLoop 0 sortedOptions
 
 putPayload :: Maybe Payload -> Put
