diff --git a/Changelog.md b/Changelog.md
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,5 +1,9 @@
 # Changelog
 
+## 0.2.0.1 (December 2022)
+
+- Fix [Unicode scripts handling on big-endian architectures](https://github.com/composewell/unicode-data/issues/97).
+
 ## 0.2.0 (September 2022)
 
 - Update to [Unicode 15.0.0](https://www.unicode.org/versions/Unicode15.0.0/).
diff --git a/lib/Unicode/Char/General/Scripts.hs b/lib/Unicode/Char/General/Scripts.hs
--- a/lib/Unicode/Char/General/Scripts.hs
+++ b/lib/Unicode/Char/General/Scripts.hs
@@ -20,6 +20,8 @@
     )
 where
 
+#include "MachDeps.h"
+
 import Data.Char (chr)
 import Data.List.NonEmpty (NonEmpty)
 import GHC.Exts
@@ -30,7 +32,7 @@
 import GHC.Exts (word32ToWord#)
 #endif
 #ifdef WORDS_BIGENDIAN
-import GHC.Exts (byteSwap32#)
+import GHC.Exts (byteSwap32#, narrow32Word#)
 #endif
 
 import qualified Unicode.Internal.Char.Scripts as S
@@ -62,9 +64,9 @@
         getRawCodePoint k# =
 #ifdef WORDS_BIGENDIAN
 #if MIN_VERSION_base(4,16,0)
-            byteSwap32# (word32ToWord# (indexWord32OffAddr# addr# k#));
+            narrow32Word# (byteSwap32# (word32ToWord# (indexWord32OffAddr# addr# k#)));
 #else
-            byteSwap32# (indexWord32OffAddr# addr# k#);
+            narrow32Word# (byteSwap32# (indexWord32OffAddr# addr# k#));
 #endif
 #elif MIN_VERSION_base(4,16,0)
             word32ToWord# (indexWord32OffAddr# addr# k#);
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -1,1 +1,10 @@
-{-# OPTIONS_GHC -F -pgmF hspec-discover #-}
+module Main where
+
+import Test.Hspec
+import qualified Unicode.Char.General.ScriptsSpec as Scripts
+
+main :: IO ()
+main = hspec spec
+
+spec :: Spec
+spec = describe "Unicode.Char.General.Scripts" Scripts.spec
diff --git a/test/Unicode/Char/General/ScriptsSpec.hs b/test/Unicode/Char/General/ScriptsSpec.hs
--- a/test/Unicode/Char/General/ScriptsSpec.hs
+++ b/test/Unicode/Char/General/ScriptsSpec.hs
@@ -4,6 +4,8 @@
   ( spec
   ) where
 
+#include "MachDeps.h"
+
 import Data.Foldable (traverse_)
 import Test.Hspec
 import qualified Unicode.Char.General.Scripts as UScripts
@@ -19,7 +21,7 @@
 import GHC.Exts (word32ToWord#)
 #endif
 #ifdef WORDS_BIGENDIAN
-import GHC.Exts (byteSwap32#)
+import GHC.Exts (byteSwap32#, narrow32Word#)
 #endif
 
 {- [NOTE]
@@ -177,9 +179,9 @@
         getRawCodePoint k# =
 #ifdef WORDS_BIGENDIAN
 #if MIN_VERSION_base(4,16,0)
-            byteSwap32# (word32ToWord# (indexWord32OffAddr# addr# k#));
+            narrow32Word# (byteSwap32# (word32ToWord# (indexWord32OffAddr# addr# k#)));
 #else
-            byteSwap32# (indexWord32OffAddr# addr# k#);
+            narrow32Word# (byteSwap32# (indexWord32OffAddr# addr# k#));
 #endif
 #elif MIN_VERSION_base(4,16,0)
             word32ToWord# (indexWord32OffAddr# addr# k#);
diff --git a/unicode-data-scripts.cabal b/unicode-data-scripts.cabal
--- a/unicode-data-scripts.cabal
+++ b/unicode-data-scripts.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.2
 name:                unicode-data-scripts
-version:             0.2.0
+version:             0.2.0.1
 synopsis:            Unicode characters scripts
 description:
   @unicode-data-scripts@ provides Haskell APIs to access the Unicode
@@ -94,8 +94,6 @@
     , hspec            >= 2.0   && < 2.11
     , unicode-data
     , unicode-data-scripts
-  build-tool-depends:
-      hspec-discover:hspec-discover >= 2.0 && < 2.11
   default-language: Haskell2010
 
 benchmark bench
