diff --git a/example/Main.hs b/example/Main.hs
--- a/example/Main.hs
+++ b/example/Main.hs
@@ -1,17 +1,18 @@
-{-# LANGUAGE OverloadedStrings, ScopedTypeVariables #-}
+{-# LANGUAGE OverloadedStrings   #-}
+{-# LANGUAGE ScopedTypeVariables #-}
 module Main where
 
 import           Control.Monad.Trans.Except
+import qualified Data.Aeson                 as J
+import qualified Data.Avro                  as A
+import           Data.Avro.Schema           as S
+import qualified Data.Avro.Types            as AT
 import           Data.Monoid
-import qualified Data.Aeson as J
-import           Data.Avro as A
-import           Data.Avro.Schema as S
-import qualified Data.Avro.Types as AT
 
-import           Data.Int
-import           Data.Text
-import           Kafka.Avro
-import           Message
+import Data.Int
+import Data.Text
+import Kafka.Avro
+import Message
 
 exampleMessage = TestMessage 1 "Example" True 12345678
 
diff --git a/example/Message.hs b/example/Message.hs
--- a/example/Message.hs
+++ b/example/Message.hs
@@ -5,10 +5,10 @@
 --
 
 import           Data.Avro
+import           Data.Avro.Schema
+import qualified Data.Avro.Types  as AT
 import           Data.Int
 import           Data.Text
-import           Data.Avro.Schema
-import qualified Data.Avro.Types as AT
 
 data TestMessage = TestMessage Int64 Text Bool Int64 deriving (Show, Eq, Ord)
 
@@ -21,6 +21,9 @@
          , fld "timestamp" Long Nothing
          ]
 
+instance HasAvroSchema TestMessage where
+  schema = pure testMessageSchema
+
 instance FromAvro TestMessage where
   fromAvro (AT.Record _ r) =
     TestMessage <$> r .: "id"
@@ -37,4 +40,3 @@
       , "is_active" .= d
       , "timestamp" .= t
       ]
-  schema = pure testMessageSchema
diff --git a/hw-kafka-avro.cabal b/hw-kafka-avro.cabal
--- a/hw-kafka-avro.cabal
+++ b/hw-kafka-avro.cabal
@@ -1,5 +1,5 @@
 name:                hw-kafka-avro
-version:             1.1.0
+version:             1.2.0
 synopsis:            Avro support for Kafka infrastructure
 description:         Please see README.md
 homepage:            https://github.com/haskell-works/hw-kafka-avro#readme
@@ -26,7 +26,7 @@
                        Kafka.Avro.SchemaRegistry
 
   build-depends:       aeson,
-                       avro,
+                       avro >= 0.2,
                        base >= 4.7 && < 5,
                        binary,
                        bytestring,
diff --git a/src/Kafka/Avro/Decode.hs b/src/Kafka/Avro/Decode.hs
--- a/src/Kafka/Avro/Decode.hs
+++ b/src/Kafka/Avro/Decode.hs
@@ -5,7 +5,8 @@
 ) where
 
 import           Control.Monad.IO.Class    (MonadIO)
-import           Data.Avro                 as A (FromAvro, Result (..), decode)
+import           Data.Avro                 as A (FromAvro, Result (..))
+import qualified Data.Avro                 as A (decodeWithSchema)
 import           Data.Avro.Schema          (Schema)
 import           Data.Bits                 (shiftL)
 import           Data.ByteString.Lazy      (ByteString)
@@ -34,7 +35,7 @@
       return $ res >>= decode payload
   where
     schemaData = maybe (Left BadPayloadNoSchemaId) Right (extractSchemaId bs)
-    decode p s = resultToEither s (A.decode s p)
+    decode p s = resultToEither s (A.decodeWithSchema s p)
 
 extractSchemaId :: ByteString -> Maybe (SchemaId, ByteString)
 extractSchemaId bs = do
