diff --git a/src/Data/Validity/Map.hs b/src/Data/Validity/Map.hs
--- a/src/Data/Validity/Map.hs
+++ b/src/Data/Validity/Map.hs
@@ -5,8 +5,9 @@
 import           Data.Map (Map)
 import qualified Data.Map as M
 
--- | A tree of things is valid if all the things are valid
-instance (Validity k, Validity v) => Validity (Map k v) where
-    isValid m = all isValid (M.keys m) && all isValid m
+-- | A tree of things is valid if all the things are valid and the map itself
+-- is valid.
+instance (Ord k, Validity k, Validity v) => Validity (Map k v) where
+    isValid m = M.valid m && all isValid (M.keys m) && all isValid m
 
 
diff --git a/validity-containers.cabal b/validity-containers.cabal
--- a/validity-containers.cabal
+++ b/validity-containers.cabal
@@ -1,5 +1,5 @@
 name:                validity-containers
-version:             0.1.0.0
+version:             0.1.0.1
 synopsis:            Validity instances for containers
 description:         Please see README.md
 homepage:            https://github.com/NorfairKing/validity#readme
@@ -18,9 +18,9 @@
   exposed-modules:     Data.Validity.Containers
                      , Data.Validity.Tree
                      , Data.Validity.Map
-  build-depends:       base >= 4.7 && < 5
+  build-depends:       base < 5
                      , validity
-                     , containers 
+                     , containers
   default-language:    Haskell2010
 
 source-repository head
