diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,10 @@
 The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
 and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
 
+## 0.20.3
+### Fixed
+- Allow unknown inv types.
+
 ## 0.20.2
 ### Fixed
 - Allow unknown messages of zero length.
diff --git a/haskoin-core.cabal b/haskoin-core.cabal
--- a/haskoin-core.cabal
+++ b/haskoin-core.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 460dd0e8508262fb1b685467ea87f00e9793d37026ca63ec280adc2699d21810
+-- hash: 51a1645e2f8c2dc54a6cc91c03a262683a314702f2ffbc182667967b50e88f6f
 
 name:           haskoin-core
-version:        0.20.2
+version:        0.20.3
 synopsis:       Bitcoin & Bitcoin Cash library for Haskell
 description:    Please see the README on GitHub at <https://github.com/haskoin/haskoin-core#readme>
 category:       Bitcoin, Finance, Network
diff --git a/src/Haskoin/Network/Common.hs b/src/Haskoin/Network/Common.hs
--- a/src/Haskoin/Network/Common.hs
+++ b/src/Haskoin/Network/Common.hs
@@ -183,7 +183,8 @@
     | InvMerkleBlock -- ^ filtered block
     | InvWitnessTx -- ^ segwit transaction
     | InvWitnessBlock -- ^ segwit block
-    | InvWitnessMerkleBlock -- ^ segwit filtere block
+    | InvWitnessMerkleBlock -- ^ segwit filtered block
+    | InvType Word32 -- ^ unknown inv type
     deriving (Eq, Show, Read, Generic, NFData)
 
 instance Serial InvType where
@@ -199,7 +200,7 @@
                     | x == 1 `shiftL` 30 + 1 -> return InvWitnessTx
                     | x == 1 `shiftL` 30 + 2 -> return InvWitnessBlock
                     | x == 1 `shiftL` 30 + 3 -> return InvWitnessMerkleBlock
-                    | otherwise -> fail "bitcoinGet InvType: Invalid Type"
+                    | otherwise -> return (InvType x)
     serialize x =
         putWord32le $
         case x of
@@ -210,6 +211,7 @@
             InvWitnessTx          -> 1 `shiftL` 30 + 1
             InvWitnessBlock       -> 1 `shiftL` 30 + 2
             InvWitnessMerkleBlock -> 1 `shiftL` 30 + 3
+            InvType w             -> w
 
 instance Binary InvType where
     get = deserialize
