diff --git a/mu-avro.cabal b/mu-avro.cabal
--- a/mu-avro.cabal
+++ b/mu-avro.cabal
@@ -1,5 +1,5 @@
 name:          mu-avro
-version:       0.4.0.2
+version:       0.4.0.3
 synopsis:      Avro serialization support for Mu microservices
 description:
   You can use @mu-avro@ to read AVRO Schema Declarations for mu-haskell
@@ -12,7 +12,10 @@
 category:      Network
 build-type:    Simple
 cabal-version: >=1.10
-data-files:    test/avro/*.avsc, test/avro/*.avdl
+data-files:
+  test/avro/*.avsc
+  test/avro/*.avdl
+
 homepage:      https://higherkindness.io/mu-haskell/
 bug-reports:   https://github.com/higherkindness/mu-haskell/issues
 
@@ -28,24 +31,24 @@
     Mu.Quasi.Avro.Example
 
   build-depends:
-      aeson                 >=1.4    && <2
-    , avro                  >=0.5.1  && <0.6
-    , base                  >=4.12   && <5
-    , bytestring            >=0.10   && <0.11
-    , containers            >=0.6    && <0.7
-    , deepseq               >=1.4    && <2
-    , language-avro         >=0.1.3  && <0.2
-    , mu-rpc                ==0.4.*
-    , mu-schema             ==0.3.*
-    , sop-core              >=0.5.0  && <0.6
-    , tagged                >=0.8.6  && <0.9
-    , template-haskell      >=2.14   && <2.17
-    , text                  >=1.2    && <2
-    , time                  >=1.9    && <2
-    , transformers          >=0.5    && <0.6
-    , unordered-containers  >=0.2    && <0.3
-    , uuid                  >=1.3    && <2
-    , vector                >=0.12   && <0.13
+      aeson                 >=1.4   && <2
+    , avro                  >=0.5.1 && <0.6
+    , base                  >=4.12  && <5
+    , bytestring            >=0.10  && <0.11
+    , containers            >=0.6   && <0.7
+    , deepseq               >=1.4   && <2
+    , language-avro         >=0.1.3 && <0.2
+    , mu-rpc                >=0.4   && <0.6
+    , mu-schema             >=0.3   && <0.4
+    , sop-core              >=0.5.0 && <0.6
+    , tagged                >=0.8.6 && <0.9
+    , template-haskell      >=2.14  && <2.17
+    , text                  >=1.2   && <2
+    , time                  >=1.9   && <2
+    , transformers          >=0.5   && <0.6
+    , unordered-containers  >=0.2   && <0.3
+    , uuid                  >=1.3   && <2
+    , vector                >=0.12  && <0.13
 
   hs-source-dirs:   src
   default-language: Haskell2010
@@ -57,8 +60,9 @@
       avro        >=0.5.1 && <0.6
     , base        >=4.12  && <5
     , bytestring  >=0.10  && <0.11
+    , containers  >=0.6   && <0.7
     , mu-avro
-    , mu-schema   ==0.3.*
+    , mu-schema   >=0.3   && <0.4
 
   hs-source-dirs:   test
   default-language: Haskell2010
diff --git a/src/Mu/Quasi/Avro.hs b/src/Mu/Quasi/Avro.hs
--- a/src/Mu/Quasi/Avro.hs
+++ b/src/Mu/Quasi/Avro.hs
@@ -139,7 +139,7 @@
     A.String (Just A.UUID) -> [t|'TPrimitive UUID|]
     A.String _ -> [t|'TPrimitive T.Text|]
     A.Array item -> [t|'TList $(schemaFromAvroType item)|]
-    A.Map values -> [t|'TMap T.Text $(schemaFromAvroType values)|]
+    A.Map values -> [t|'TMap ('TPrimitive T.Text) $(schemaFromAvroType values)|]
     A.NamedType typeName ->
       [t|'TSchematic $(textToStrLit (A.baseName typeName))|]
     A.Enum {} -> fail "should never happen, please, file an issue"
diff --git a/test/Avro.hs b/test/Avro.hs
--- a/test/Avro.hs
+++ b/test/Avro.hs
@@ -8,6 +8,7 @@
 
 import           Data.Avro
 import qualified Data.ByteString.Lazy as BS
+import qualified Data.Map             as M
 import           System.Environment
 
 import           Mu.Adapter.Avro      ()
@@ -18,8 +19,11 @@
 exampleAddress = Address "1111BB" "Spain"
 
 examplePerson1, examplePerson2 :: Person
-examplePerson1 = Person "Haskellio" "Gomez" (Just 30) (Just Male) exampleAddress [1,2,3]
-examplePerson2 = Person "Cuarenta" "Siete" Nothing Nothing exampleAddress []
+examplePerson1
+  = Person "Haskellio" "Gomez" (Just 30) (Just Male) exampleAddress [1,2,3] M.empty
+examplePerson2
+  = Person "Cuarenta" "Siete" Nothing Nothing exampleAddress []
+           (M.fromList [("hola", 1), ("hello", 2)])
 
 deriving via (WithSchema ExampleSchema "person" Person) instance HasAvroSchema Person
 deriving via (WithSchema ExampleSchema "person" Person) instance FromAvro Person
diff --git a/test/avro/example.avdl b/test/avro/example.avdl
--- a/test/avro/example.avdl
+++ b/test/avro/example.avdl
@@ -3,6 +3,7 @@
   record Person {
     string name;
     int age;
+    map<int> things;
   }
 
   error NotFoundError {
diff --git a/test/avro/example.avsc b/test/avro/example.avsc
--- a/test/avro/example.avsc
+++ b/test/avro/example.avsc
@@ -18,6 +18,7 @@
           ]
       }
     },
-    {"name": "lucky_numbers", "type": { "type": "array", "items": "long" } }
+    {"name": "lucky_numbers", "type": { "type": "array", "items": "long" } },
+    {"name": "things", "type": "map", "values": "int"}
   ]
 }
