diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,3 +11,7 @@
 ## 0.1.2 -- 2022-08-18
 
 * Add 'foldCase' and 'foldCaseLabel'
+
+## 0.1.3 -- 2022-08-19
+
+* Fix incorrect Ord instance for 'Domain' and 'DomainLabel'
diff --git a/dns-patterns.cabal b/dns-patterns.cabal
--- a/dns-patterns.cabal
+++ b/dns-patterns.cabal
@@ -1,6 +1,6 @@
 cabal-version:      3.0
 name:               dns-patterns
-version:            0.1.2
+version:            0.1.3
 author:             Victor Nawothnig
 maintainer:         Victor Nawothnig (dminuoso@icloud.com)
 copyright:          (c) 2022 Wobcom GmbH
diff --git a/lib/Network/DNS/Pattern.hs b/lib/Network/DNS/Pattern.hs
--- a/lib/Network/DNS/Pattern.hs
+++ b/lib/Network/DNS/Pattern.hs
@@ -38,6 +38,7 @@
 import           Data.Char (isAscii, ord)
 import           Data.Coerce (coerce)
 import           Data.Foldable (asum, foldl')
+import           Data.Function (on)
 import           Data.Word (Word8)
 import           Text.Printf (printf)
 
@@ -96,7 +97,6 @@
 --    foo.bar.*.
 -- @
 
-
 type Parser = A.Parser
 
 -- | A domain pattern.
@@ -112,19 +112,24 @@
 
 -- | Newtype warpper for 'BS.ByteString' that implements case-insensitive 'Eq' and 'Ord' as per [RFC4343](https://datatracker.ietf.org/doc/html/rfc4343#section-3).
 newtype DomainLabel = DomainLabel { getDomainLabel :: BS.ByteString }
-  deriving (Ord)
 
+instance Ord DomainLabel where
+  compare = compare `on` (BS.map foldCase_ . getDomainLabel)
+
 instance Eq DomainLabel where
   DomainLabel l == DomainLabel r
     = BS.map foldCase_ l == BS.map foldCase_ r
 
+
+-- | Case-folding of a domain according to [RFC4343](https://datatracker.ietf.org/doc/html/rfc4343#section-3).
 foldCase :: Domain -> Domain
 foldCase (Domain ls) = Domain (foldCaseLabel <$> ls)
 
--- | Case-folding according to [RFC4343](https://datatracker.ietf.org/doc/html/rfc4343#section-3).
+-- | Case-folding of a domain label according to [RFC4343](https://datatracker.ietf.org/doc/html/rfc4343#section-3).
 foldCaseLabel :: DomainLabel -> DomainLabel
 foldCaseLabel (DomainLabel l) = DomainLabel (BS.map foldCase_ l)
 
+{-# INLINE foldCase_ #-}
 foldCase_ :: Word8 -> Word8
 foldCase_ x = case x of
     0x41 -> c2w 'a'
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -29,13 +29,13 @@
     Left err -> error ("Domain: no parse, " <> err)
 
 instance Show Domain where
-  showsPrec _ d = mappend (T.unpack (pprDomain d))
+  show = T.unpack . pprDomain
 
 instance Show DomainPattern where
-  showsPrec _ d = mappend (T.unpack (pprPattern d))
+  show = T.unpack . pprPattern
 
 instance Show DomainLabel where
-  showsPrec _ d = mappend (T.unpack (pprDomainLabel d))
+  show = T.unpack . pprDomainLabel
 
 main :: IO ()
 main = do
