diff --git a/NEWS b/NEWS
--- a/NEWS
+++ b/NEWS
@@ -1,9 +1,15 @@
 OddWord - Release History
 
+release-1.0.0.2 - 2013.05.14
+
+  * Fixed misdefinition of type synonyms for Word10, Word12, and Word14,
+    and extended test suite. (Thanks to Benno Fünfstück)
+
 release-1.0.0.1 - 2012.12.30
 
   * Fixed compilation with base-4.6 (GHC 7.6).
-  * Fixed bug in Read instance and extended test suite.
+  * Fixed bug in Read instance and extended test suite. (Thanks to Tikhon
+    Jelvis)
 
 release-1.0.0 - 2011.07.21
 
diff --git a/OddWord.cabal b/OddWord.cabal
--- a/OddWord.cabal
+++ b/OddWord.cabal
@@ -1,8 +1,8 @@
 name:               OddWord
-version:            1.0.0.1
+version:            1.0.0.2
 license:            BSD3
 license-file:       LICENSE
-copyright:          (c) 2011-2012 Robin KAY
+copyright:          (c) 2011-2013 Robin KAY
 author:             Robin KAY
 maintainer:         Robin KAY <komadori@gekkou.co.uk>
 synopsis:           Provides a wrapper for deriving word types with fewer bits.
@@ -33,7 +33,7 @@
     other-extensions: ScopedTypeVariables
     build-depends:
         base       >= 4.5 && < 5,
-        QuickCheck >= 2.4 && < 2.6,
+        QuickCheck >= 2.4 && < 2.7,
         OddWord    >= 1.0 && < 1.1
 
 Source-repository head
diff --git a/src/Data/Word/Odd.hs b/src/Data/Word/Odd.hs
--- a/src/Data/Word/Odd.hs
+++ b/src/Data/Word/Odd.hs
@@ -159,11 +159,11 @@
 type Word7  = OddWord Word8  (One (One  (One  ())))
 --type Word8
 type Word9  = OddWord Word16 (One (Zero (Zero (One  ()))))
-type Word10 = OddWord Word16 (One (Zero (Zero (Zero ()))))
+type Word10 = OddWord Word16 (One (Zero (One  (Zero ()))))
 type Word11 = OddWord Word16 (One (Zero (One  (One  ()))))
-type Word12 = OddWord Word16 (One (Zero (One  (Zero ()))))
+type Word12 = OddWord Word16 (One (One  (Zero (Zero ()))))
 type Word13 = OddWord Word16 (One (One  (Zero (One  ()))))
-type Word14 = OddWord Word16 (One (One  (Zero (Zero ()))))
+type Word14 = OddWord Word16 (One (One  (One  (Zero ()))))
 type Word15 = OddWord Word16 (One (One  (One  (One  ()))))
 --type Word16
 type Word17 = OddWord Word32 (One (Zero (Zero (Zero (One  ())))))
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -99,8 +99,39 @@
         tstFn = foldr (.) id $ map fromUFunc us :: TestWord16 -> TestWord16
     in toInteger (refFn 0) == toInteger (tstFn 0)
 
+preDefWordLengths :: [Int]
+preDefWordLengths = [
+    bitSize (0 :: Word1), bitSize (0 :: Word2), bitSize (0 :: Word3),
+    bitSize (0 :: Word4), bitSize (0 :: Word5), bitSize (0 :: Word6),
+    bitSize (0 :: Word7), bitSize (0 :: Word8), bitSize (0 :: Word9),
+    bitSize (0 :: Word10), bitSize (0 :: Word11), bitSize (0 :: Word12),
+    bitSize (0 :: Word13), bitSize (0 :: Word14), bitSize (0 :: Word15),
+    bitSize (0 :: Word16), bitSize (0 :: Word17), bitSize (0 :: Word18),
+    bitSize (0 :: Word19), bitSize (0 :: Word20), bitSize (0 :: Word21),
+    bitSize (0 :: Word22), bitSize (0 :: Word23), bitSize (0 :: Word24),
+    bitSize (0 :: Word25), bitSize (0 :: Word26), bitSize (0 :: Word27),
+    bitSize (0 :: Word28), bitSize (0 :: Word29), bitSize (0 :: Word30),
+    bitSize (0 :: Word31), bitSize (0 :: Word32), bitSize (0 :: Word33),
+    bitSize (0 :: Word34), bitSize (0 :: Word35), bitSize (0 :: Word36),
+    bitSize (0 :: Word37), bitSize (0 :: Word38), bitSize (0 :: Word39),
+    bitSize (0 :: Word40), bitSize (0 :: Word41), bitSize (0 :: Word42),
+    bitSize (0 :: Word43), bitSize (0 :: Word44), bitSize (0 :: Word45),
+    bitSize (0 :: Word46), bitSize (0 :: Word47), bitSize (0 :: Word48),
+    bitSize (0 :: Word49), bitSize (0 :: Word50), bitSize (0 :: Word51),
+    bitSize (0 :: Word52), bitSize (0 :: Word53), bitSize (0 :: Word54),
+    bitSize (0 :: Word55), bitSize (0 :: Word56), bitSize (0 :: Word57),
+    bitSize (0 :: Word58), bitSize (0 :: Word59), bitSize (0 :: Word60),
+    bitSize (0 :: Word61), bitSize (0 :: Word62), bitSize (0 :: Word63)]
+
 main :: IO ()
 main = do
+    -- Verify lengths of predefined odd word synonyms
+    mapM_ (\(u,v) -> putStrLn (
+        showString "Error: Word" . shows u . showString " has length " $
+            shows v ".") >> exitFailure) $
+        map fst $ filter snd $ map (\t -> (t,uncurry (/=) t)) $
+        zip [1..] preDefWordLengths
+    -- Verify correctness of operations on a test word type
     r <- quickCheckWithResult stdArgs {maxSuccess = 1000} verifyTestWord16
     case r of
         Success _ _ _ -> exitSuccess
