diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,4 +1,9 @@
+# Version 0.1.1
+
+* Require `safe-money>=0.8`.
+
+
 # Version 0.1
 
-* This first release of @safe-money-xmlbf@ includes the same @xmlbf@
-  support and tests that were present in @safe-money-0.6@.
+* This first release of `safe-money-xmlbf` includes the same `xmlbf`
+  support and tests that were present in `safe-money-0.6`.
diff --git a/safe-money-xmlbf.cabal b/safe-money-xmlbf.cabal
--- a/safe-money-xmlbf.cabal
+++ b/safe-money-xmlbf.cabal
@@ -1,5 +1,5 @@
 name: safe-money-xmlbf
-version: 0.1
+version: 0.1.1
 license: BSD3
 license-file: LICENSE
 copyright: Copyright (c) Renzo Carbonara 2016-2018
@@ -32,7 +32,7 @@
   ghc-options: -Wall -O2
   build-depends:
     base (>=4.8 && <5.0),
-    safe-money,
+    safe-money >=0.8,
     text,
     xmlbf
   exposed-modules:
diff --git a/src/Money/Xmlbf.hs b/src/Money/Xmlbf.hs
--- a/src/Money/Xmlbf.hs
+++ b/src/Money/Xmlbf.hs
@@ -78,7 +78,7 @@
 -- | Compatible with 'Money.Discrete''
 instance Xmlbf.ToXml Money.SomeDiscrete where
   toXml = \sd ->
-    let r = Money.someDiscreteScale sd
+    let r = Money.scaleToRational (Money.someDiscreteScale sd)
         as = [ ("c", Money.someDiscreteCurrency sd)
              , ("n", T.pack (show (numerator r)))
              , ("d", T.pack (show (denominator r)))
@@ -93,7 +93,8 @@
     d <- Xmlbf.pRead =<< Xmlbf.pAttr "d"
     when (d == 0) (fail "denominator is zero")
     a <- Xmlbf.pRead =<< Xmlbf.pAttr "a"
-    maybe empty pure (Money.mkSomeDiscrete c (n % d) a)
+    maybe empty pure (Money.mkSomeDiscrete c <$> Money.scaleFromRational (n % d)
+                                             <*> pure a)
 
 -- | Compatible with 'Money..SomeExchangeRate'
 --
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -58,10 +58,8 @@
 testCurrencyUnits :: Tasty.TestTree
 testCurrencyUnits =
   Tasty.testGroup "Currency units"
-  [ testDiscrete (Proxy :: Proxy "BTC") (Proxy :: Proxy "BTC")
-  , testDiscrete (Proxy :: Proxy "BTC") (Proxy :: Proxy "satoshi")
+  [ testDiscrete (Proxy :: Proxy "BTC") (Proxy :: Proxy "satoshi")
   , testDiscrete (Proxy :: Proxy "BTC") (Proxy :: Proxy "bitcoin")
-  , testDiscrete (Proxy :: Proxy "USD") (Proxy :: Proxy "USD")
   , testDiscrete (Proxy :: Proxy "USD") (Proxy :: Proxy "cent")
   , testDiscrete (Proxy :: Proxy "USD") (Proxy :: Proxy "dollar")
   , testDiscrete (Proxy :: Proxy "VUV") (Proxy :: Proxy "vatu")
@@ -115,7 +113,7 @@
 
 testDiscrete
   :: forall (currency :: Symbol) (unit :: Symbol)
-  .  ( Money.GoodScale (Money.Scale currency unit)
+  .  ( Money.GoodScale (Money.UnitScale currency unit)
      , KnownSymbol currency
      , KnownSymbol unit )
   => Proxy currency
