diff --git a/src/cutecoin/core/transfer.py b/src/cutecoin/core/transfer.py
index 4960298e2cfc75db4fdea7a53b492db847aca6de..5fa37f313bb743946c51526cbacc73d6c3ad9ceb 100644
--- a/src/cutecoin/core/transfer.py
+++ b/src/cutecoin/core/transfer.py
@@ -23,23 +23,30 @@ class Transfer(object):
         '''
         Constructor
         '''
+        assert('receiver' in metadata)
+        assert('block' in metadata)
+        assert('time' in metadata)
+        assert('issuer' in metadata)
+        assert('amount' in metadata)
+        assert('comment' in metadata)
+
         self.txdoc = txdoc
         self.state = state
-        self.metadata = metadata
+        self._metadata = metadata
 
     @classmethod
-    def initiate(cls, block, time, amount, issuer, receiver, comment):
-        return cls(None, Transfer.TO_SEND, {'block': block,
-                                             'time': time,
-                                             'amount': amount,
-                                             'issuer': issuer,
-                                             'receiver': receiver,
-                                             'comment': comment})
+    def initiate(cls, metadata):
+        return cls(None, Transfer.TO_SEND, metadata)
 
     @classmethod
     def create_validated(cls, txdoc, metadata):
+        logging.debug("VALIDATED : {0}".format(metadata))
         return cls(txdoc, Transfer.VALIDATED, metadata)
 
+    @property
+    def metadata(self):
+        return self._metadata
+
     @classmethod
     def load(cls, data):
         if data['state'] is Transfer.TO_SEND:
@@ -55,7 +62,7 @@ class Transfer(object):
             txraw = None
         return {'txdoc': txraw,
                 'state': self.state,
-                'metadata': self.metadata}
+                'metadata': self._metadata}
 
     def send(self, txdoc, community):
         try:
@@ -68,20 +75,22 @@ class Transfer(object):
                 self.state = Transfer.REFUSED
             raise
         finally:
-            self.metadata['block'] = community.current_blockid()['number']
-            self.metadata['time'] = community.get_block().mediantime
-
-    def check_registered(self, tx, metadata):
+            self._metadata['block'] = community.current_blockid()['number']
+            self._metadata['time'] = community.get_block().mediantime
 
-        logging.debug("{0} > {1} ?".format(metadata['block'],
-                                           self.metadata['block'] + 15))
+    def check_registered(self, tx, block, time):
+        logging.debug("REGISTERED : BEFORE : {0}".format(self._metadata))
         if tx.signed_raw() == self.txdoc.signed_raw():
             self.state = Transfer.VALIDATED
-            self.metadata = metadata
+            self._metadata['block'] = block
+            self._metadata['time'] = time
+        logging.debug("REGISTERED : AFTER : {0}".format(self._metadata))
 
     def check_refused(self, block):
-        if block > self.metadata['block'] + 15:
+        logging.debug("REFUSED : BEFORE : {0}".format(self._metadata))
+        if block > self._metadata['block'] + 15:
             self.state = Transfer.REFUSED
+        logging.debug("REFUSED : AFTER : {0}".format(self._metadata))
 
     def drop(self):
         self.state = Transfer.DROPPED
diff --git a/src/cutecoin/core/wallet.py b/src/cutecoin/core/wallet.py
index c3dc6b633a9d90a45d9e9b3518ec1a56f6e3cf11..47c3853e52ab3861e92b41cc3cf1f82d649980c0 100644
--- a/src/cutecoin/core/wallet.py
+++ b/src/cutecoin/core/wallet.py
@@ -65,9 +65,6 @@ class Cache():
             # Lets look if transactions took too long to be validated
             awaiting = [t for t in self._transfers
                         if t.state == Transfer.AWAITING]
-            for transfer in awaiting:
-                transfer.check_refused(current_block)
-
             with_tx = community.request(bma.blockchain.TX)
 
             # We parse only blocks with transactions
@@ -88,13 +85,15 @@ class Cache():
                 except:
                     logging.debug("Error in {0}".format(block_number))
                     raise
-                metadata = {'block': block_number,
-                            'time': block_doc.mediantime}
                 for tx in block_doc.transactions:
-                    metadata['issuer'] = tx.issuers[0]
+                    metadata = {'block': block_number,
+                            'time': block_doc.mediantime,
+                            'comment': tx.comment,
+                            'issuer': tx.issuers[0]}
                     receivers = [o.pubkey for o in tx.outputs
                                  if o.pubkey != metadata['issuer']]
                     metadata['receiver'] = receivers[0]
+                    logging.debug("RECEIVER = {0}".format(metadata['receiver']))
 
                     in_issuers = len([i for i in tx.issuers
                                  if i == self.wallet.pubkey]) > 0
@@ -109,14 +108,14 @@ class Cache():
                         awaiting = [t for t in self._transfers
                                     if t.state == Transfer.AWAITING]
                         awaiting_docs = [t.txdoc.signed_raw() for t in awaiting]
-                        logging.debug(tx.signed_raw())
-                        logging.debug(awaiting_docs)
                         if tx.signed_raw() not in awaiting_docs:
-                            transfer = Transfer.create_validated(tx, metadata)
+                            transfer = Transfer.create_validated(tx,
+                                                                 metadata.copy())
                             self._transfers.append(transfer)
                         else:
                             for transfer in awaiting:
-                                transfer.check_registered(tx, metadata)
+                                transfer.check_registered(tx, block_number,
+                                                          block_doc.mediantime)
                     else:
                         outputs = [o for o in tx.outputs
                                    if o.pubkey == self.wallet.pubkey]
@@ -125,10 +124,13 @@ class Cache():
                             for o in outputs:
                                 amount += o.amount
                             metadata['amount'] = amount
-                            self._transfers.append(Received(tx, metadata))
+                            self._transfers.append(Received(tx,
+                                                            metadata.copy()))
 
             if current_block > self.latest_block:
                     self.available_sources = self.wallet.sources(community)
+            for transfer in awaiting:
+                transfer.check_refused(current_block)
 
         except NoPeerAvailable:
             return
@@ -253,8 +255,15 @@ class Wallet(object):
             key = SigningKey("{0}{1}".format(salt, self.walletid), password)
         logging.debug("Sender pubkey:{0}".format(key.pubkey))
 
-        transfer = Transfer.initiate(block_number, time, amount,
-                                     key.pubkey, recipient, message)
+        metadata = {'block': block_number,
+                    'time': time,
+                    'amount': amount,
+                    'issuer': key.pubkey,
+                    'receiver': recipient,
+                    'comment': message
+                    }
+        transfer = Transfer.initiate(metadata)
+
         self.caches[community.currency]._transfers.append(transfer)
 
         result = self.tx_inputs(int(amount), community)
diff --git a/src/cutecoin/gui/currency_tab.py b/src/cutecoin/gui/currency_tab.py
index 7d3546b3e93c06b075544661d5537e8ddbbbe920..6e719290c68423703a5aeabe566d3f45ac9b0b3a 100644
--- a/src/cutecoin/gui/currency_tab.py
+++ b/src/cutecoin/gui/currency_tab.py
@@ -176,7 +176,7 @@ class CurrencyTabWidget(QWidget, Ui_CurrencyTabWidget):
         join_date = self.community.get_block(join_block).mediantime
         parameters = self.community.get_parameters()
         expiration_date = join_date + parameters['sigValidity']
-        current_time = QDateTime().currentDateTime()
+        current_time = QDateTime().currentDateTime().toTime_t()
         sig_validity = self.community.get_parameters()['sigValidity']
         warning_expiration_time = int(sig_validity / 3)
         will_expire_soon = (current_time > expiration_date*1000 - warning_expiration_time*1000)
diff --git a/src/cutecoin/tools/exceptions.py b/src/cutecoin/tools/exceptions.py
index 6813277fa6569fc13e186435cab024a25498a92c..d063899b1812883197e96ceec3efaad1cad6d8ed 100644
--- a/src/cutecoin/tools/exceptions.py
+++ b/src/cutecoin/tools/exceptions.py
@@ -43,11 +43,7 @@ class PersonNotFoundError(Error):
         Constructor
         '''
         super() .__init__(
-            "Person looked by " +
-            value +
-            " in " +
-            community +
-            " not found ")
+            "Person looked by {0} in {1} not found ".format(value, community))
 
 
 class MembershipNotFoundError(Error):