diff --git a/src/cutecoin/core/person.py b/src/cutecoin/core/person.py
index 4a45013fc17bde456fe64859a9f9ef2e0976cd72..276ef0e0fa752a4124bcb56051d9d26e0aa12c29 100644
--- a/src/cutecoin/core/person.py
+++ b/src/cutecoin/core/person.py
@@ -6,6 +6,7 @@ Created on 11 févr. 2014
 
 import logging
 import functools
+import time
 
 from ucoinpy.api import bma
 from ucoinpy import PROTOCOL_VERSION
@@ -416,6 +417,14 @@ class Person(object):
                 unique_valid.append(certified)
         return unique_valid
 
+    def membership_expiration_time(self, community):
+        join_block = self.membership(community)['blockNumber']
+        join_date = community.get_block(join_block).mediantime
+        parameters = community.parameters
+        expiration_date = join_date + parameters['sigValidity']
+        current_time = time.time()
+        return expiration_date - current_time
+
     def reload(self, func, community):
         '''
         Reload a cached property of this person in a community.
diff --git a/src/cutecoin/gui/currency_tab.py b/src/cutecoin/gui/currency_tab.py
index 89fee312e41bde2a9933afd90f61a282d5dd0352..1f3efa89fd9c5f8d7ec377060bea5e77ead670be 100644
--- a/src/cutecoin/gui/currency_tab.py
+++ b/src/cutecoin/gui/currency_tab.py
@@ -37,6 +37,13 @@ class CurrencyTabWidget(QWidget, Ui_CurrencyTabWidget):
         self.community = community
         self.password_asker = password_asker
         self.status_label = status_label
+
+        self.status_info = []
+        self.status_infotext = {'membership_expire_soon':
+                            self.tr("Warning : Your membership is expiring soon."),
+                            'warning_certifications':
+                            self.tr("Warning : Your could miss certifications soon.")
+                            }
         self.tab_community = CommunityTabWidget(self.app,
                                                 self.app.current_account,
                                                     self.community,
@@ -57,26 +64,6 @@ class CurrencyTabWidget(QWidget, Ui_CurrencyTabWidget):
         bc_watcher.watching_stopped.connect(self.refresh_data)
         bc_watcher.new_transfers.connect(self.notify_transfers)
 
-        person = Person.lookup(self.app.current_account.pubkey, self.community)
-        try:
-            join_block = person.membership(self.community)['blockNumber']
-            join_date = self.community.get_block(join_block).mediantime
-            parameters = self.community.parameters
-            expiration_date = join_date + parameters['sigValidity']
-            current_time = time.time()
-            sig_validity = self.community.parameters['sigValidity']
-            warning_expiration_time = int(sig_validity / 3)
-            will_expire_soon = (current_time > expiration_date - warning_expiration_time)
-
-            logging.debug("Try")
-            if will_expire_soon:
-                days = QDateTime().currentDateTime().daysTo(QDateTime.fromTime_t(expiration_date))
-                if days > 0:
-                    toast.display(self.tr("Membership expiration"),
-self.tr("<b>Warning : Membership expiration in {0} days</b>").format(days))
-        except MembershipNotFoundError as e:
-            pass
-
     def refresh(self):
         if self.app.current_account is None:
             self.tabs_account.setEnabled(False)
@@ -142,6 +129,31 @@ self.tr("<b>Warning : Membership expiration in {0} days</b>").format(days))
         @param: block_number: The number of the block mined
         '''
         logging.debug("Refresh block")
+        self.status_info.clear()
+        try:
+            person = Person.lookup(self.app.current_account.pubkey, self.community)
+            expiration_time = person.membership_expiration_time(self.community)
+            sig_validity = self.community.parameters['sigValidity']
+            warning_expiration_time = int(sig_validity / 3)
+            will_expire_soon = (expiration_time < warning_expiration_time)
+
+            logging.debug("Try")
+            if will_expire_soon:
+                days = int(expiration_time / 3600 / 24)
+                if days > 0:
+                    self.status_info.append('membership_expire_soon')
+                    toast.display(self.tr("Membership expiration"),
+                                  self.tr("<b>Warning : Membership expiration in {0} days</b>").format(days))
+            certifiers_of = person.unique_valid_certifiers_of(self.community)
+            if len(certifiers_of) < self.community.parameters['sigQty']:
+                self.status_info.append('warning_certifications')
+                toast.display(self.tr("Certifications number"),
+                              self.tr("<b>Warning : You are certified by only {0} persons, need {1}</b>").format(len(certifiers_of),
+                                                                                                                     self.community.parameters['sigQty']))
+
+        except MembershipNotFoundError as e:
+            pass
+
         self.tab_history.start_progress()
         self.app.monitor.blockchain_watcher(self.community).thread().start()
         self.app.monitor.persons_watcher(self.community).thread().start()
@@ -175,7 +187,11 @@ self.tr("<b>Warning : Membership expiration in {0} days</b>").format(days))
             icon = '<img src=":/icons/weak_connect" width="12" height="12"/>'
         else:
             icon = '<img src=":/icons/disconnected" width="12" height="12"/>'
-        self.status_label.setText("{0}{1}".format(icon, text))
+        status_infotext = " - ".join([self.status_infotext[info] for info in self.status_info])
+        label_text = "{0}{1}".format(icon, text)
+        if status_infotext != "":
+            label_text += " - {0}".format(status_infotext)
+        self.status_label.setText("{0}{1}{2}".format(icon, text, status_infotext))
 
     @pyqtSlot(list)
     def notify_transfers(self, transfers_list):
diff --git a/src/cutecoin/gui/transactions_tab.py b/src/cutecoin/gui/transactions_tab.py
index 01bcb08735432283c8928f291b2d96be4c512067..1e085303356c79fb31c68834f222e66c6e0e21b8 100644
--- a/src/cutecoin/gui/transactions_tab.py
+++ b/src/cutecoin/gui/transactions_tab.py
@@ -118,12 +118,12 @@ class TransactionsTabWidget(QWidget, Ui_transactionsTabWidget):
         if index.row() < model.rowCount(QModelIndex()):
             menu = QMenu(self.tr("Actions"), self)
             source_index = model.mapToSource(index)
-            state_col = model.sourceModel().columns_types.index('state')
+            state_col = model.sourceModel().column_types.index('state')
             state_index = model.sourceModel().index(source_index.row(),
                                                    state_col)
             state_data = model.sourceModel().data(state_index, Qt.DisplayRole)
 
-            pubkey_col = model.sourceModel().columns_types.index('pubkey')
+            pubkey_col = model.sourceModel().column_types.index('pubkey')
             person_index = model.sourceModel().index(source_index.row(),
                                                     pubkey_col)
             person = model.sourceModel().data(person_index, Qt.DisplayRole)
diff --git a/src/cutecoin/models/network.py b/src/cutecoin/models/network.py
index bb10397b3a26e2f82f07f1fbd53bee758778c99e..258007ea6c84f6724bd24a8fb97d4467cb7a7454 100644
--- a/src/cutecoin/models/network.py
+++ b/src/cutecoin/models/network.py
@@ -52,19 +52,19 @@ class NetworkFilterProxyModel(QSortFilterProxyModel):
         if not source_index.isValid():
             return QVariant()
         source_data = source_model.data(source_index, role)
-        if index.column() == self.sourceModel().columns_types.index('is_member') \
+        if index.column() == self.sourceModel().column_types.index('is_member') \
                 and role == Qt.DisplayRole:
             value = {True: 'yes', False: 'no', None: 'offline'}
             return value[source_data]
 
         if role == Qt.TextAlignmentRole:
-            if source_index.column() == source_model.columns_types.index('address') or source_index.column() == self.sourceModel().columns_types.index('current_block'):
+            if source_index.column() == source_model.column_types.index('address') or source_index.column() == self.sourceModel().column_types.index('current_block'):
                 return Qt.AlignRight | Qt.AlignVCenter
-            if source_index.column() == source_model.columns_types.index('is_member'):
+            if source_index.column() == source_model.column_types.index('is_member'):
                 return Qt.AlignCenter
 
         if role == Qt.FontRole:
-            is_root_col = source_model.columns_types.index('is_root')
+            is_root_col = source_model.column_types.index('is_root')
             index_root_col = source_model.index(source_index.row(), is_root_col)
             if source_model.data(index_root_col, Qt.DisplayRole):
                 font = QFont()
@@ -85,7 +85,7 @@ class NetworkTableModel(QAbstractTableModel):
         '''
         super().__init__(parent)
         self.community = community
-        self.columns_types = (
+        self.column_types = (
             'address',
             'port',
             'current_block',
@@ -115,13 +115,13 @@ class NetworkTableModel(QAbstractTableModel):
         return len(self.nodes)
 
     def columnCount(self, parent):
-        return len(self.columns_types)
+        return len(self.column_types)
 
     def headerData(self, section, orientation, role):
         if role != Qt.DisplayRole:
             return QVariant()
 
-        return self.columns_types[section]
+        return self.column_types[section]
 
     def data_node(self, node: Node) -> tuple:
         """
diff --git a/src/cutecoin/models/txhistory.py b/src/cutecoin/models/txhistory.py
index 3b214211102b3c5515a34c89198b65d54ced78c0..a704fc9674397728b95ac6d0e04002018f17c8e7 100644
--- a/src/cutecoin/models/txhistory.py
+++ b/src/cutecoin/models/txhistory.py
@@ -40,20 +40,20 @@ class TxFilterProxyModel(QSortFilterProxyModel):
             return date_ts in range(self.ts_from, self.ts_to)
 
         source_model = self.sourceModel()
-        date_col = source_model.columns_types.index('date')
+        date_col = source_model.column_types.index('date')
         source_index = source_model.index(sourceRow, date_col)
         date = source_model.data(source_index, Qt.DisplayRole)
         if in_period(date):
             # calculate sum total payments
             payment = source_model.data(
-                source_model.index(sourceRow, source_model.columns_types.index('payment')),
+                source_model.index(sourceRow, source_model.column_types.index('payment')),
                 Qt.DisplayRole
             )
             if payment:
                 self.payments += int(payment)
             # calculate sum total deposits
             deposit = source_model.data(
-                source_model.index(sourceRow, source_model.columns_types.index('deposit')),
+                source_model.index(sourceRow, source_model.column_types.index('deposit')),
                 Qt.DisplayRole
             )
             if deposit:
@@ -81,7 +81,7 @@ class TxFilterProxyModel(QSortFilterProxyModel):
         elif right_data == "":
             return self.sortOrder() == Qt.AscendingOrder
         if left_data == right_data:
-            txid_col = source_model.columns_types.index('txid')
+            txid_col = source_model.column_types.index('txid')
             txid_left = source_model.index(left.row(), txid_col)
             txid_right = source_model.index(right.row(), txid_col)
             return (txid_left < txid_right)
@@ -92,17 +92,17 @@ class TxFilterProxyModel(QSortFilterProxyModel):
         source_index = self.mapToSource(index)
         model = self.sourceModel()
         source_data = model.data(source_index, role)
-        state_col = model.columns_types.index('state')
+        state_col = model.column_types.index('state')
         state_index = model.index(source_index.row(), state_col)
         state_data = model.data(state_index, Qt.DisplayRole)
         if role == Qt.DisplayRole:
-            if source_index.column() == model.columns_types.index('uid'):
+            if source_index.column() == model.column_types.index('uid'):
                 return source_data
-            if source_index.column() == model.columns_types.index('date'):
+            if source_index.column() == model.column_types.index('date'):
                 date = QDateTime.fromTime_t(source_data)
                 return date.date()
-            if source_index.column() == model.columns_types.index('payment') or \
-                    source_index.column() == model.columns_types.index('deposit'):
+            if source_index.column() == model.column_types.index('payment') or \
+                    source_index.column() == model.column_types.index('deposit'):
                 if source_data is not "":
                     amount_ref = self.account.units_to_diff_ref(source_data,
                                                                 self.community)
@@ -130,14 +130,14 @@ class TxFilterProxyModel(QSortFilterProxyModel):
                 return QColor(Qt.blue)
 
         if role == Qt.TextAlignmentRole:
-            if source_index.column() == self.sourceModel().columns_types.index(
-                    'deposit') or source_index.column() == self.sourceModel().columns_types.index('payment'):
+            if source_index.column() == self.sourceModel().column_types.index(
+                    'deposit') or source_index.column() == self.sourceModel().column_types.index('payment'):
                 return Qt.AlignRight | Qt.AlignVCenter
-            if source_index.column() == self.sourceModel().columns_types.index('date'):
+            if source_index.column() == self.sourceModel().column_types.index('date'):
                 return Qt.AlignCenter
 
         if role == Qt.ToolTipRole:
-            if source_index.column() == self.sourceModel().columns_types.index('date'):
+            if source_index.column() == self.sourceModel().column_types.index('date'):
                 return QDateTime.fromTime_t(source_data).toString(Qt.SystemLocaleLongDate)
 
         return source_data
@@ -159,7 +159,7 @@ class HistoryTableModel(QAbstractTableModel):
         self.transfers_data = []
         self.refresh_transfers()
 
-        self.columns_types = (
+        self.column_types = (
             'date',
             'uid',
             'payment',
@@ -234,11 +234,11 @@ class HistoryTableModel(QAbstractTableModel):
         return len(self.transfers)
 
     def columnCount(self, parent):
-        return len(self.columns_types)
+        return len(self.column_types)
 
     def headerData(self, section, orientation, role):
         if role == Qt.DisplayRole:
-            if self.columns_types[section] == 'payment' or self.columns_types[section] == 'deposit':
+            if self.column_types[section] == 'payment' or self.column_types[section] == 'deposit':
                 return '{:}\n({:})'.format(
                     self.column_headers[section],
                     self.account.diff_ref_name(self.community.short_currency)