diff --git a/IPv6Addr.cabal b/IPv6Addr.cabal
--- a/IPv6Addr.cabal
+++ b/IPv6Addr.cabal
@@ -1,5 +1,5 @@
 name:                IPv6Addr
-version:             1.0.4
+version:             1.1.0
 synopsis:            Library to deal with IPv6 address text representations.
 description:         Library to deal with IPv6 address text representations, canonization and manipulations.
 homepage:            https://github.com/MichelBoucey/IPv6Addr
diff --git a/Text/IPv6Addr.hs b/Text/IPv6Addr.hs
--- a/Text/IPv6Addr.hs
+++ b/Text/IPv6Addr.hs
@@ -331,6 +331,10 @@
            diffNext (t:ts) = do
              let h = head ts
              case t of
+               DoubleColon ->
+                 case h of
+                   Colon        -> False
+                   _            -> True 
                SixteenBit _ ->
                  case h of
                    SixteenBit _ -> False
diff --git a/tests/Main.hs b/tests/Main.hs
--- a/tests/Main.hs
+++ b/tests/Main.hs
@@ -23,6 +23,7 @@
   , (~?=) (maybeIPv6Addr "0:0:0:0:0:0:0:0:0") Nothing
   , (~?=) (maybeIPv6Addr "1") Nothing
   , (~?=) (maybeIPv6Addr "::1") (Just (IPv6Addr "::1"))
+  , (~?=) (maybeIPv6Addr ":::1") Nothing
   , (~?=) (maybeIPv6Addr "::1:") Nothing
   , (~?=) (maybeIPv6Addr "0000:0000:0000:0000:0000:0000:0000:0001") (Just (IPv6Addr "::1"))
   , (~?=) (maybeIPv6Addr "0:0:0:0:0:0:0:1") (Just (IPv6Addr "::1"))
