diff --git a/lib/models/my_wallets.dart b/lib/models/my_wallets.dart
index 3edd56b710d3818d30ac8f87ecc78912fe50ef08..cf953499ce19b8c100f0f3f380a0f76df0e33286 100644
--- a/lib/models/my_wallets.dart
+++ b/lib/models/my_wallets.dart
@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
 import 'dart:async';
 import 'package:gecko/globals.dart';
 import 'package:gecko/models/wallet_data.dart';
+import 'package:gecko/screens/home.dart';
 
 class MyWalletsProvider with ChangeNotifier {
   List<WalletData> listWallets = [];
@@ -71,9 +72,13 @@ class MyWalletsProvider with ChangeNotifier {
         await walletBox.clear();
         await chestBox.clear();
         await configBox.delete('defaultWallet');
-        rebuildWidget();
+        // await Future.delayed(const Duration(milliseconds: 50));
+        // notifyListeners();
 
-        Navigator.pop(context);
+        await Navigator.of(context).pushNamedAndRemoveUntil(
+          '/',
+          ModalRoute.withName('/'),
+        );
       }
       return 0;
     } catch (e) {
diff --git a/lib/screens/myWallets/change_pin.dart b/lib/screens/myWallets/change_pin.dart
index 49a9b7466b0e302b8ce4e10a4b02710c7610c8d2..5abfca404b5191672f1476001c965089b2273d86 100644
--- a/lib/screens/myWallets/change_pin.dart
+++ b/lib/screens/myWallets/change_pin.dart
@@ -49,6 +49,13 @@ class ChangePinScreen extends StatelessWidget with ChangeNotifier {
         body: Center(
           child: SafeArea(
             child: Column(children: <Widget>[
+              StatefulWrapper(
+                onInit: () async {
+                  _newWalletFile =
+                      await _changePin.changePin(walletProvider.pinCode);
+                },
+                child: Container(),
+              ),
               const SizedBox(height: 80),
               Text(
                 'Choisissez un code secret autogénéré :',
@@ -112,3 +119,27 @@ class ChangePinScreen extends StatelessWidget with ChangeNotifier {
     );
   }
 }
+
+class StatefulWrapper extends StatefulWidget {
+  final Function onInit;
+  final Widget child;
+  const StatefulWrapper({Key key, @required this.onInit, @required this.child})
+      : super(key: key);
+  @override
+  _StatefulWrapperState createState() => _StatefulWrapperState();
+}
+
+class _StatefulWrapperState extends State<StatefulWrapper> {
+  @override
+  void initState() {
+    if (widget.onInit != null) {
+      widget.onInit();
+    }
+    super.initState();
+  }
+
+  @override
+  Widget build(BuildContext context) {
+    return widget.child;
+  }
+}
diff --git a/lib/screens/myWallets/chest_options.dart b/lib/screens/myWallets/chest_options.dart
index dfae9b70d293fcebc416c1054fe858be3fe5e562..e0c1d1c37b4619864b9ab48ab4964c265ce4e9fe 100644
--- a/lib/screens/myWallets/chest_options.dart
+++ b/lib/screens/myWallets/chest_options.dart
@@ -46,7 +46,7 @@ class ChestOptions extends StatelessWidget {
               key: const Key('changePin'),
               onTap: () async {
                 // await _chestProvider.changePin(context, cesiumWallet);
-                walletProvider.pinCode = await Navigator.push(
+                String pinResult = await Navigator.push(
                   context,
                   MaterialPageRoute(
                     builder: (context) {
@@ -57,6 +57,10 @@ class ChestOptions extends StatelessWidget {
                     },
                   ),
                 );
+
+                if (pinResult != null) {
+                  walletProvider.pinCode = pinResult;
+                }
               },
               child: SizedBox(
                   height: 50,
diff --git a/lib/screens/myWallets/confirm_wallet_storage.dart b/lib/screens/myWallets/confirm_wallet_storage.dart
index 6861561239e206277e01bc87a4851a90d39d58f6..ef743245caef14af3c61563f2d3747d8741be5a0 100644
--- a/lib/screens/myWallets/confirm_wallet_storage.dart
+++ b/lib/screens/myWallets/confirm_wallet_storage.dart
@@ -137,7 +137,7 @@ class ConfirmStoreWallet extends StatelessWidget with ChangeNotifier {
                             onPressed: (_generateWalletProvider
                                         .isAskedWordValid &&
                                     walletName.text != '')
-                                ? () {
+                                ? () async {
                                     _generateWalletProvider.storeHDWChest(
                                         generatedWallet,
                                         walletName.text,
@@ -149,16 +149,16 @@ class ConfirmStoreWallet extends StatelessWidget with ChangeNotifier {
                                     _myWalletProvider.listWallets =
                                         _myWalletProvider
                                             .readAllWallets(_currentChest);
-                                    scheduleMicrotask(() {
-                                      _walletOptions.reloadBuild();
-                                      _myWalletProvider.rebuildWidget();
-                                    });
+                                    await Future.delayed(
+                                        const Duration(milliseconds: 50));
+                                    _myWalletProvider.rebuildWidget();
                                     Navigator.pushAndRemoveUntil(context,
                                         MaterialPageRoute(builder: (context) {
                                       return UnlockingWallet(
                                         wallet:
                                             _myWalletProvider.getDefaultWallet(
-                                                configBox.get('currentChest')),
+                                          configBox.get('currentChest'),
+                                        ),
                                         action: "mywallets",
                                       );
                                     }), ModalRoute.withName('/'));
diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart
index c2b9bf89c1e7be35546cf880747265c81b4e2544..4934d67548b6ee3b7e93d0321eac5508d1d35668 100644
--- a/lib/screens/settings.dart
+++ b/lib/screens/settings.dart
@@ -94,9 +94,7 @@ class SettingsScreen extends StatelessWidget {
                           ),
                           onPressed: () async => {
                                 log.i('Suppression de tous les wallets'),
-                                await _myWallets
-                                    .deleteAllWallet(context)
-                                    .then((v) => _homeProvider.rebuildWidget())
+                                await _myWallets.deleteAllWallet(context)
                               },
                           child: const Text("EFFACER TOUS MES PORTEFEUILLES",
                               style: TextStyle(fontSize: 20)))))),