diff --git a/res/ui/transactions_tab.ui b/res/ui/transactions_tab.ui
index e316da4c956d7711dde481e1bddbf0bf270ebb74..f9b6d6edaf525443e7363a74e165a359ffa37d40 100644
--- a/res/ui/transactions_tab.ui
+++ b/res/ui/transactions_tab.ui
@@ -46,23 +46,29 @@
      <item>
       <layout class="QHBoxLayout" name="horizontalLayout">
        <item>
-        <widget class="QLabel" name="label_balance">
+        <widget class="QLabel" name="label_payment">
          <property name="text">
-          <string>Balance:</string>
+          <string>Payment:</string>
          </property>
         </widget>
        </item>
        <item>
-        <widget class="QLabel" name="label_payment">
+        <widget class="QLabel" name="label_deposit">
          <property name="text">
-          <string>Payment:</string>
+          <string>Deposit:</string>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignCenter</set>
          </property>
         </widget>
        </item>
        <item>
-        <widget class="QLabel" name="label_deposit">
+        <widget class="QLabel" name="label_balance">
          <property name="text">
-          <string>Deposit:</string>
+          <string>Balance:</string>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
          </property>
         </widget>
        </item>
diff --git a/src/cutecoin/core/app.py b/src/cutecoin/core/app.py
index 199e2823ca9ac3ef6490fa91cf4aee7a92bb9b50..07cae11146629c3484b07cb0be8cd67f1f771b18 100644
--- a/src/cutecoin/core/app.py
+++ b/src/cutecoin/core/app.py
@@ -239,6 +239,24 @@ class Application(QObject):
             data['version'] = __version__
             json.dump(data, outfile, indent=4, sort_keys=True)
 
+    def save_wallet(self, account, wallet):
+        """
+        Save wallet of account in cache
+
+        :param cutecoin.core.account.Account account: Account instance
+        :param cutecoin.core.wallet.Wallet wallet: Wallet instance
+        """
+        if not os.path.exists(os.path.join(config.parameters['home'],
+                                           account.name, '__cache__')):
+            os.makedirs(os.path.join(config.parameters['home'],
+                                     account.name, '__cache__'))
+        wallet_path = os.path.join(config.parameters['home'],
+                                   account.name, '__cache__', wallet.pubkey)
+        with open(wallet_path, 'w') as outfile:
+            data = wallet.jsonify_caches()
+            data['version'] = __version__
+            json.dump(data, outfile, indent=4, sort_keys=True)
+
     def save_cache(self, account):
         '''
         Save the cache of an account
@@ -250,12 +268,7 @@ class Application(QObject):
             os.makedirs(os.path.join(config.parameters['home'],
                                         account.name, '__cache__'))
         for wallet in account.wallets:
-            wallet_path = os.path.join(config.parameters['home'],
-                                        account.name, '__cache__', wallet.pubkey)
-            with open(wallet_path, 'w') as outfile:
-                data = wallet.jsonify_caches()
-                data['version'] = __version__
-                json.dump(data, outfile, indent=4, sort_keys=True)
+            self.save_wallet(account, wallet)
 
         for community in account.communities:
             community_path = os.path.join(config.parameters['home'],
@@ -267,6 +280,7 @@ class Application(QObject):
                                         community.currency + '_network')
 
             with open(network_path, 'w') as outfile:
+                data = dict()
                 data['network'] = community.jsonify_network()
                 data['version'] = __version__
                 json.dump(data, outfile, indent=4, sort_keys=True)
diff --git a/src/cutecoin/gui/mainwindow.py b/src/cutecoin/gui/mainwindow.py
index caa26f3b4159117c6f17de76f5db69a082ee1b65..faa70e907d855b9cfdfdc7f0b65a19f70c9d84ca 100644
--- a/src/cutecoin/gui/mainwindow.py
+++ b/src/cutecoin/gui/mainwindow.py
@@ -57,7 +57,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
     def __init__(self, app):
         """
         Init
-        :param ..core.app.Application app:
+        :param cutecoin.core.app.Application app: application
         """
         # Set up the user interface from Designer.
         super().__init__()
diff --git a/src/cutecoin/gui/process_cfg_account.py b/src/cutecoin/gui/process_cfg_account.py
index cddae22e304204b5558474395d941a9f97ea5bee..50b1bc7271b5708a95131ee8a63d779084cf9212 100644
--- a/src/cutecoin/gui/process_cfg_account.py
+++ b/src/cutecoin/gui/process_cfg_account.py
@@ -27,6 +27,7 @@ class StepPageInit(Step):
     '''
     First step when adding a community
     '''
+
     def __init__(self, config_dialog):
         super().__init__(config_dialog)
 
@@ -61,29 +62,31 @@ class StepPageKey(Step):
     '''
     First step when adding a community
     '''
+
     def __init__(self, config_dialog):
         super().__init__(config_dialog)
 
     def is_valid(self):
         if len(self.config_dialog.edit_salt.text()) < 6:
-            self.config_dialog.label_info.setText(self.tr("Forbidden : salt is too short"))
+            self.config_dialog.label_info.setText(self.config_dialog.tr("Forbidden : salt is too short"))
             return False
 
         if len(self.config_dialog.edit_password.text()) < 6:
-            self.config_dialog.label_info.setText(self.tr("Forbidden : password is too short"))
+            self.config_dialog.label_info.setText(self.config_dialog.tr("Forbidden : password is too short"))
             return False
 
         if detect_non_printable(self.config_dialog.edit_salt.text()):
-            self.config_dialog.label_info.setText(self.tr("Forbidden : Invalid characters in salt field"))
+            self.config_dialog.label_info.setText(self.config_dialog.tr("Forbidden : Invalid characters in salt field"))
             return False
 
         if detect_non_printable(self.config_dialog.edit_password.text()):
-            self.config_dialog.label_info.setText(self.tr("Forbidden : Invalid characters in password field"))
+            self.config_dialog.label_info.setText(
+                self.config_dialog.tr("Forbidden : Invalid characters in password field"))
             return False
 
         if self.config_dialog.edit_password.text() != \
-            self.config_dialog.edit_password_repeat.text():
-            self.config_dialog.label_info.setText(self.tr("Error : passwords are different"))
+                self.config_dialog.edit_password_repeat.text():
+            self.config_dialog.label_info.setText(self.config_dialog.tr("Error : passwords are different"))
             return False
 
         self.config_dialog.label_info.setText("")
@@ -107,6 +110,7 @@ class StepPageCommunities(Step):
     '''
     First step when adding a community
     '''
+
     def __init__(self, config_dialog):
         super().__init__(config_dialog)
 
@@ -227,7 +231,7 @@ class ProcessConfigureAccount(QDialog, Ui_AccountConfigurationDialog):
 
     def action_delete_account(self):
         reply = QMessageBox.question(self, self.tr("Warning"),
-                             self.tr("""This action will delete your account locally.
+                                     self.tr("""This action will delete your account locally.
 Please note your key parameters (salt and password) if you wish to recover it later.
 Your account won't be removed from the networks it joined.
 Are you sure ?"""))
diff --git a/src/cutecoin/gui/process_cfg_community.py b/src/cutecoin/gui/process_cfg_community.py
index 2aae23fd708407ac90d0e72ff686c22b99d96b7d..4b9c67074dab22d55abfb2cee7c888ee223e9b3b 100644
--- a/src/cutecoin/gui/process_cfg_community.py
+++ b/src/cutecoin/gui/process_cfg_community.py
@@ -86,7 +86,7 @@ class StepPageAddpeers(Step):
 
         self.config_dialog.tree_peers.setModel(tree_model)
         self.config_dialog.button_previous.setEnabled(False)
-        self.config_dialog.button_next.setText(self.tr("Ok"))
+        self.config_dialog.button_next.setText(self.config_dialog.tr("Ok"))
 
 
 class ProcessConfigureCommunity(QDialog, Ui_CommunityConfigurationDialog):
diff --git a/src/cutecoin/gui/transactions_tab.py b/src/cutecoin/gui/transactions_tab.py
index 514cff55eaa1825da9eb7c08cb6925b8441b3a51..84144fd6074603cbc7cbb6eb4fa7586be3b0fcaa 100644
--- a/src/cutecoin/gui/transactions_tab.py
+++ b/src/cutecoin/gui/transactions_tab.py
@@ -85,15 +85,15 @@ class TransactionsTabWidget(QWidget, Ui_transactionsTabWidget):
             localized_balance = QLocale().toString(
                 self.app.current_account.units_to_diff_ref(balance, self.community), 'f', 6)
 
-        self.label_deposit.setText(self.tr("Deposits: {:} {:}").format(
+        self.label_deposit.setText(self.tr("<b>Deposits</b> {:} {:}").format(
             localized_deposits,
             self.app.current_account.ref_name(self.community.short_currency)
         ))
-        self.label_payment.setText(self.tr("Payments: {:} {:}").format(
+        self.label_payment.setText(self.tr("<b>Payments</b> {:} {:}").format(
             localized_payments,
             self.app.current_account.ref_name(self.community.short_currency)
         ))
-        self.label_balance.setText(self.tr("Balance: {:} {:}").format(
+        self.label_balance.setText(self.tr("<b>Balance</b> {:} {:}").format(
             localized_balance,
             self.app.current_account.ref_name(self.community.short_currency)
         ))
diff --git a/src/cutecoin/gui/wallets_tab.py b/src/cutecoin/gui/wallets_tab.py
index 565d94ada25a13ba0bd14bfae0f1dbd5d51d5fd8..0f0dce817aeac15358d7712c9bfbcffbff986ea1 100644
--- a/src/cutecoin/gui/wallets_tab.py
+++ b/src/cutecoin/gui/wallets_tab.py
@@ -10,6 +10,7 @@ from PyQt5.QtCore import QDateTime, QModelIndex, Qt, QLocale
 from PyQt5.QtGui import QCursor
 from ..core.person import Person
 from ..core.wallet import Wallet
+from ..gui.password_asker import PasswordAskerDialog
 from ..models.wallets import WalletsTableModel, WalletsFilterProxyModel
 from .transfer import TransferMoneyDialog
 from ..tools.exceptions import MembershipNotFoundError
@@ -22,9 +23,13 @@ class WalletsTabWidget(QWidget, Ui_WalletsTab):
     '''
 
     def __init__(self, app, account, community, password_asker):
-        '''
-        Constructor
-        '''
+        """
+        Init
+        :param cutecoin.core.app.Application app: Application instance
+        :param cutecoin.core.account.Account account: Account instance
+        :param cutecoin.core.community.Community community: Community instance
+        :param cutecoin.gui.password_asker.PasswordAskerDialog password_asker: PasswordAskerDialog instance
+        """
         super().__init__()
         self.setupUi(self)
         self.app = app
@@ -65,8 +70,8 @@ class WalletsTabWidget(QWidget, Ui_WalletsTab):
                     self.account.name, self.account.pubkey,
                     self.tr("Membership"),
                     self.tr("Last renewal on {:}, expiration on {:}").format(date_renewal, date_expiration),
-                    self.tr("Your web of trust :"),
-                    self.tr("Certified by : {:} members; Certifier of : {:} members").format(len(certifiers),
+                    self.tr("Your web of trust"),
+                    self.tr("Certified by {:} members; Certifier of : {:} members").format(len(certifiers),
                                                                                              len(certified))
                 )
             )
@@ -82,8 +87,8 @@ class WalletsTabWidget(QWidget, Ui_WalletsTab):
                 """).format(
                     self.account.name, self.account.pubkey,
                     self.tr("Not a member"),
-                    self.tr("Your web of trust :"),
-                    self.tr("Certified by : {:} members; Certifier of : {:} members").format(len(certifiers),
+                    self.tr("Your web of trust"),
+                    self.tr("Certified by {:} members; Certifier of : {:} members").format(len(certifiers),
                                                                                              len(certified))
                 )
             )
@@ -110,9 +115,9 @@ class WalletsTabWidget(QWidget, Ui_WalletsTab):
             <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr>
             </table>
             """).format(
-                self.tr("Your money share : "),
+                self.tr("Your money share "),
                 self.tr("{:.2f}%").format(amount / maximum * 100) if maximum != 0 else "0%",
-                self.tr("Your part : "),
+                self.tr("Your part "),
                 self.tr("{:} {:} in [{:.2f} - {:}] {:}")
                 .format(
                     localized_amount,
@@ -156,6 +161,9 @@ class WalletsTabWidget(QWidget, Ui_WalletsTab):
             pubkey = model.sourceModel().data(pubkey_index, Qt.DisplayRole)
             menu = QMenu(model.data(index, Qt.DisplayRole), self)
 
+            new_wallet = QAction(self.tr("New Wallet"), self)
+            new_wallet.triggered.connect(self.new_wallet)
+
             rename = QAction(self.tr("Rename"), self)
             rename.triggered.connect(self.rename_wallet)
             rename.setData(name_index)
@@ -175,12 +183,34 @@ class WalletsTabWidget(QWidget, Ui_WalletsTab):
                 transfer_action.setData(wallets)
                 transfer_to.addAction(transfer_action)
 
+            menu.addAction(new_wallet)
             menu.addAction(rename)
             menu.addAction(copy_pubkey)
             menu.addMenu(transfer_to)
             # Show the context menu.
             menu.exec_(QCursor.pos())
 
+    def new_wallet(self):
+        """
+        Create a new wallet
+        """
+        password_asker = PasswordAskerDialog(self.app.current_account)
+        password = password_asker.exec_()
+        if password_asker.result() == QDialog.Rejected:
+            return None
+        # create new wallet by increasing wallet pool size
+        self.account.set_walletpool_size(len(self.account.wallets) + 1, password)
+        # capture new wallet
+        wallet = self.account.wallets[len(self.account.wallets)-1]
+        # feed cache data of the wallet
+        wallet.refresh_cache(self.community, list())
+        # save wallet cache on disk
+        self.app.save_wallet(self.account, self.account.wallets[len(self.account.wallets)-1])
+        # save account cache on disk (update number of wallets)
+        self.app.save(self.account)
+        # refresh wallet list in gui
+        self.refresh()
+
     def rename_wallet(self):
         index = self.sender().data()
         self.table_wallets.edit(index)