diff --git a/src/sakia/core/wallet.py b/src/sakia/core/wallet.py
index cbe23f9d422b93c40c8078cfd11b5cec3bdf3f3d..fa73835d7c8e080517725e03b7074a9472c129af 100644
--- a/src/sakia/core/wallet.py
+++ b/src/sakia/core/wallet.py
@@ -175,18 +175,18 @@ class Wallet(QObject):
 
         :return: The list of inputs to use in the transaction document
         """
-        value = 0
         amount, amount_base = reduce_base(amount, 0)
         cache = self.caches[community.currency]
         current_base = amount_base
-        sources = []
-        buf_sources = list(cache.available_sources)
         while current_base >= 0:
+            value = 0
+            sources = []
+            buf_sources = list(cache.available_sources)
             for s in [src for src in cache.available_sources if src['base'] == current_base]:
                 value += s['amount'] * pow(10, s['base'])
                 sources.append(s)
                 buf_sources.remove(s)
-                if value >= amount:
+                if value >= amount * pow(10, amount_base):
                     overhead = value - int(amount)
                     overhead, overhead_max_base = reduce_base(overhead, 0)
                     if overhead_max_base >= current_base:
diff --git a/src/sakia/tests/unit/core/test_wallet.py b/src/sakia/tests/unit/core/test_wallet.py
index 787efe255d05b65151587da0155f11636578f036..875ea5889a374b4eb6399c82394ec77874fb90b4 100644
--- a/src/sakia/tests/unit/core/test_wallet.py
+++ b/src/sakia/tests/unit/core/test_wallet.py
@@ -72,8 +72,8 @@ class TestWallet(unittest.TestCase, QuamashTest):
         self.assertEqual(tx.inputs[1].source, "D")
         self.assertEqual(tx.inputs[1].index, 4)
         self.assertEqual(len(tx.outputs), 1)
-        self.assertEqual(tx.outputs[0].amount, 1)
-        self.assertEqual(tx.outputs[0].base, 2)
+        self.assertEqual(tx.outputs[0].amount, 100)
+        self.assertEqual(tx.outputs[0].base, 0)
         self.assertEqual(pypeg2.compose(tx.outputs[0].conditions, output.Condition),
                          "SIG(FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn)")
         self.assertEqual(len(tx.unlocks), 2)
@@ -94,5 +94,5 @@ Unlocks:
 0:SIG(0)
 1:SIG(0)
 Outputs:
-1:2:SIG(FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn)
+100:0:SIG(FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn)
 Comment:""" + " \n")