diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog for the [`ghc-typelits-natnormalise`](http://hackage.haskell.org/package/ghc-typelits-natnormalise) package
 
+## 0.5.2 *January 15th 2017*
+* Fixes bugs:
+  * Reification from SOP to Type sometimes loses product terms
+
 ## 0.5.1 *September 29th 2016*
 * Fixes bugs:
   * Cannot solve an equality for the second time in a definition group
diff --git a/ghc-typelits-natnormalise.cabal b/ghc-typelits-natnormalise.cabal
--- a/ghc-typelits-natnormalise.cabal
+++ b/ghc-typelits-natnormalise.cabal
@@ -1,5 +1,5 @@
 name:                ghc-typelits-natnormalise
-version:             0.5.1
+version:             0.5.2
 synopsis:            GHC typechecker plugin for types of kind GHC.TypeLits.Nat
 description:
   A type checker plugin for GHC that can solve /equalities/ of types of kind
diff --git a/src/GHC/TypeLits/Normalise/Unify.hs b/src/GHC/TypeLits/Normalise/Unify.hs
--- a/src/GHC/TypeLits/Normalise/Unify.hs
+++ b/src/GHC/TypeLits/Normalise/Unify.hs
@@ -151,7 +151,7 @@
       , s1 == s2
       = Right (s1,(p1:p2)) : ys
       | otherwise
-      = Right (s1,[p1]) : ys
+      = Right (s1,[p1]) : y : ys
     mergeExp x ys = Left x : ys
 
 reifySymbol :: Either CoreSymbol (CoreSOP,[CoreProduct]) -> Type
