diff --git a/src/common/connection.py b/src/common/connection.py
index cc95480a22c897a45fb3b9f8b7a3c776af53f392..be74de6f64c3aa4e7f2f8fc128cfd1015289ac7d 100644
--- a/src/common/connection.py
+++ b/src/common/connection.py
@@ -1281,7 +1281,7 @@ class Connection(CommonConnection, ConnectionHandlers):
                 # Check sha1 fingerprint
                 if con.Connection.ssl_fingerprint_sha1 != saved_fingerprint:
                     gajim.nec.push_incoming_event(FingerprintErrorEvent(None,
-                        conn=self,
+                        conn=self, certificate=con.Connection.ssl_certificate,
                         new_fingerprint=con.Connection.ssl_fingerprint_sha1))
                     return True
             else:
diff --git a/src/common/xmpp/tls_nb.py b/src/common/xmpp/tls_nb.py
index b0df948d6ab1699b7c21e696fcda6a2059ee4ca3..7a9c80f9884daa2dbc9eaaed128f0d671b0f4116 100644
--- a/src/common/xmpp/tls_nb.py
+++ b/src/common/xmpp/tls_nb.py
@@ -449,6 +449,7 @@ class NonBlockingTLS(PlugIn):
         # Exceptions can't propagate up through this callback, so print them here.
         try:
             self._owner.ssl_fingerprint_sha1 = cert.digest('sha1')
+            self._owner.ssl_certificate = cert
             if errnum == 0:
                 return True
             self._owner.ssl_errnum = errnum
diff --git a/src/dialogs.py b/src/dialogs.py
index 786ff809e7e52674ebbafb7eec344710e6759798..982c55c1790134e8e3beca67a6bebff0e39ed2ee 100644
--- a/src/dialogs.py
+++ b/src/dialogs.py
@@ -5606,3 +5606,51 @@ class VoIPCallReceivedDialog(object):
                     session.reject_content(content)
 
         dialog.destroy()
+
+class CertificatDialog(InformationDialog):
+    def __init__(self, parent, account, cert):
+        issuer = cert.get_issuer()
+        subject = cert.get_subject()
+        InformationDialog.__init__(self,
+            _('Certificate for account %s') % account, _('''<b>Issued to:</b>
+Common Name (CN): %(scn)s
+Organization (O): %(sorg)s
+Organizationl Unit (OU): %(sou)s
+Serial Number: %(sn)s
+
+<b>Issued by:</b>
+Common Name (CN): %(icn)s
+Organization (O): %(iorg)s
+Organizationl Unit (OU): %(iou)s
+
+<b>Validity:</b>
+Issued on: %(io)s
+Expires on: %(eo)s
+
+<b>Fingerprint</b>
+SHA1 Fingerprint: %(sha1)s''') % {
+            'scn': subject.commonName, 'sorg': subject.organizationName,
+            'sou': subject.organizationalUnitName,
+            'sn': cert.get_serial_number(), 'icn': issuer.commonName,
+            'iorg': issuer.organizationName,
+            'iou': issuer.organizationalUnitName,
+            'io': cert.get_notBefore(), 'eo': cert.get_notAfter(),
+            'sha1': cert.digest('sha1')})
+        self.set_transient_for(parent)
+
+
+class CheckFingerprintDialog(YesNoDialog):
+    def __init__(self, pritext='', sectext='', checktext='',
+    on_response_yes=None, on_response_no=None, account=None, certificate=None):
+        self.account = account
+        self.cert = certificate
+        YesNoDialog.__init__(self, pritext, sectext, checktext, on_response_yes,
+            on_response_no)
+        b = gtk.Button('View cert...')
+        b.connect('clicked', self.on_cert_clicked)
+        b.show_all()
+        area = self.get_action_area()
+        area.pack_start(b)
+
+    def on_cert_clicked(self, button):
+        d = CertificatDialog(self, self.account, self.cert)
\ No newline at end of file
diff --git a/src/gui_interface.py b/src/gui_interface.py
index 678f9c0e40578fbbe517434a52241e0f1eee29f3..a5c1a5366d4da457fba24662b8c52592a3b168a7 100644
--- a/src/gui_interface.py
+++ b/src/gui_interface.py
@@ -1250,8 +1250,9 @@ class Interface:
             self.instances[account]['online_dialog']['fingerprint_error'].\
                 destroy()
         self.instances[account]['online_dialog']['fingerprint_error'] = \
-            dialogs.YesNoDialog(pritext, sectext, on_response_yes=on_yes,
-            on_response_no=on_no)
+            dialogs.CheckFingerprintDialog(pritext, sectext, on_response_yes=on_yes,
+            on_response_no=on_no, account=obj.conn.name,
+            certificate=obj.certificate)
 
     def handle_event_plain_connection(self, obj):
         # ('PLAIN_CONNECTION', account, (connection))