tfix issue #968 - electrum - Electrum Bitcoin wallet
 (HTM) git clone https://git.parazyd.org/electrum
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Submodules
       ---
 (DIR) commit 9f9bab6cf03ec10a8fd99292cabe6f2328111809
 (DIR) parent f57c581468edc3e7a169980e011d36616122b7ed
 (HTM) Author: ThomasV <thomasv@gitorious>
       Date:   Wed, 31 Dec 2014 19:21:54 +0100
       
       fix issue #968
       
       Diffstat:
         M gui/qt/__init__.py                  |       7 ++++++-
         M gui/qt/installwizard.py             |       8 +-------
         M lib/wallet.py                       |       2 ++
       
       3 files changed, 9 insertions(+), 8 deletions(-)
       ---
 (DIR) diff --git a/gui/qt/__init__.py b/gui/qt/__init__.py
       t@@ -163,7 +163,12 @@ class ElectrumGui:
                if action is not None:
                    import installwizard
                    wizard = installwizard.InstallWizard(self.config, self.network, storage)
       -            wallet = wizard.run(action)
       +            try:
       +                wallet = wizard.run(action)
       +            except BaseException as e:
       +                traceback.print_exc(file=sys.stdout)
       +                QMessageBox.information(None, _('Error'), str(e), _('OK'))
       +                return
                    if not wallet:
                        return
                else:
 (DIR) diff --git a/gui/qt/installwizard.py b/gui/qt/installwizard.py
       t@@ -389,13 +389,7 @@ class InstallWizard(QDialog):
                        wallet.add_master_public_key("x3/", xpub3)
        
                    elif action == 'create_accounts':
       -                try:
       -                    wallet.create_main_account(password)
       -                except BaseException as e:
       -                    import traceback
       -                    traceback.print_exc(file=sys.stdout)
       -                    QMessageBox.information(None, _('Error'), str(e), _('OK'))
       -                    return
       +                wallet.create_main_account(password)
                        self.waiting_dialog(wallet.synchronize)
        
                    else:
 (DIR) diff --git a/lib/wallet.py b/lib/wallet.py
       t@@ -1296,6 +1296,8 @@ class BIP32_Wallet(Deterministic_Wallet):
                    raise InvalidPassword()
        
            def add_master_public_key(self, name, xpub):
       +        if xpub in self.master_public_keys.values():
       +            raise BaseException('Duplicate master public key')
                self.master_public_keys[name] = xpub
                self.storage.put('master_public_keys', self.master_public_keys, True)