diff --git a/src/sakia/core/wallet.py b/src/sakia/core/wallet.py
index 7cd58741298fda0f7c007d3f33b192e0ad5e0b3f..1a3279f7e2ed57090fe843a93b1c132810b5878d 100644
--- a/src/sakia/core/wallet.py
+++ b/src/sakia/core/wallet.py
@@ -190,38 +190,39 @@ class Wallet(QObject):
 
         amount, amount_base = reduce_base(amount, 0)
         cache = self.caches[community.currency]
-        current_base = max([src['base'] for src in cache.available_sources])
-        value = 0
-        sources = []
-        outputs = []
-        overheads = []
-        buf_sources = list(cache.available_sources)
-        while current_base >= 0:
-            for s in [src for src in cache.available_sources if src['base'] == current_base]:
-                test_sources = sources + [s]
-                val = current_value(test_sources, overheads)
-                # if we have to compute an overhead
-                if current_value(test_sources, overheads) > amount * (10**amount_base):
-                    overhead = current_value(test_sources, overheads) - int(amount) * (10**amount_base)
-                    # we round the overhead in the current base
-                    # exemple : 12 in base 1 -> 1*10^1
-                    overhead = int(round(float(overhead) / (10**current_base)))
-                    source_value = s['amount'] * (10**s['base'])
-                    out = int((source_value - (overhead * (10**current_base)))/(10**current_base))
-                    if out * (10**current_base) <= amount * (10**amount_base):
+        if cache.available_sources:
+            current_base = max([src['base'] for src in cache.available_sources])
+            value = 0
+            sources = []
+            outputs = []
+            overheads = []
+            buf_sources = list(cache.available_sources)
+            while current_base >= 0:
+                for s in [src for src in cache.available_sources if src['base'] == current_base]:
+                    test_sources = sources + [s]
+                    val = current_value(test_sources, overheads)
+                    # if we have to compute an overhead
+                    if current_value(test_sources, overheads) > amount * (10**amount_base):
+                        overhead = current_value(test_sources, overheads) - int(amount) * (10**amount_base)
+                        # we round the overhead in the current base
+                        # exemple : 12 in base 1 -> 1*10^1
+                        overhead = int(round(float(overhead) / (10**current_base)))
+                        source_value = s['amount'] * (10**s['base'])
+                        out = int((source_value - (overhead * (10**current_base)))/(10**current_base))
+                        if out * (10**current_base) <= amount * (10**amount_base):
+                            sources.append(s)
+                            buf_sources.remove(s)
+                            overheads.append((overhead, current_base))
+                            outputs.append((out, current_base))
+                    # else just add the output
+                    else:
                         sources.append(s)
                         buf_sources.remove(s)
-                        overheads.append((overhead, current_base))
-                        outputs.append((out, current_base))
-                # else just add the output
-                else:
-                    sources.append(s)
-                    buf_sources.remove(s)
-                    outputs.append((s['amount'] , s['base']))
-                if current_value(sources, overheads) == amount * (10 ** amount_base):
-                    return sources, outputs, overheads, buf_sources
-
-            current_base -= 1
+                        outputs.append((s['amount'] , s['base']))
+                    if current_value(sources, overheads) == amount * (10 ** amount_base):
+                        return sources, outputs, overheads, buf_sources
+
+                current_base -= 1
 
         raise NotEnoughMoneyError(value, community.currency,
                                   len(sources), amount * pow(10, amount_base))