diff --git a/lib/main.dart b/lib/main.dart
index 35bbc4a60b0409e860459f48e39e67bc903077db..efc831de6dfbf0915bf3ba6fb775f76ede4ae39f 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -363,6 +363,7 @@ class _GinkgoAppState extends State<GinkgoApp> {
                         useMaterial3: true, colorScheme: darkColorScheme),
 
                     navigatorKey: GinkgoApp.navigatorKey,
+                    scaffoldMessengerKey: globalMessengerKey,
 
                     /// Theme stuff
                     themeMode: context.watch<ThemeCubit>().state.themeMode,
diff --git a/lib/ui/ui_helpers.dart b/lib/ui/ui_helpers.dart
index ccf8fb9ca46803d370e367bbeac309239c52ae1b..41f43c088cff1c573151e3e2666d9931d1876fe4 100644
--- a/lib/ui/ui_helpers.dart
+++ b/lib/ui/ui_helpers.dart
@@ -359,3 +359,6 @@ Color notSelectedPatternLock(BuildContext context) => Colors.amber;
 
 String ginkgoNetIcon =
     'https://git.duniter.org/vjrj/ginkgo/-/raw/master/web/icons/favicon-32x32.png';
+
+final GlobalKey<ScaffoldMessengerState> globalMessengerKey =
+    GlobalKey<ScaffoldMessengerState>();
diff --git a/lib/ui/widgets/fifth_screen/import_dialog.dart b/lib/ui/widgets/fifth_screen/import_dialog.dart
index 70f50dff1ef96fbeaf371b27086f4fb52dbf57db..acf27fabba182374a3117c16f005e7772b824f24 100644
--- a/lib/ui/widgets/fifth_screen/import_dialog.dart
+++ b/lib/ui/widgets/fifth_screen/import_dialog.dart
@@ -30,9 +30,9 @@ class _ImportDialogState extends State<ImportDialog> {
   final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>();
 
   @override
-  Widget build(BuildContext context) {
+  Widget build(BuildContext c) {
     return FutureBuilder<String>(
-        future: kIsWeb ? _importWalletWeb() : _importWallet(context),
+        future: kIsWeb ? _importWalletWeb(c) : _importWallet(c),
         builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
           if (snapshot.hasData &&
               snapshot.data != null &&
@@ -42,7 +42,6 @@ class _ImportDialogState extends State<ImportDialog> {
                 jsonDecode(keyEncString) as Map<String, dynamic>;
             final String keyEncrypted = keyJson['key'] as String;
             // final Uint8List keyBase64 = base64Decode(keyEncrypted);
-
             return Scaffold(
               key: scaffoldKey,
               appBar: AppBar(
@@ -87,12 +86,23 @@ class _ImportDialogState extends State<ImportDialog> {
                               } else {
                                 importWalletToSharedPrefs(keys);
                               }
+                              if (!mounted) {
+                                return;
+                              }
+                              c.replaceSnackbar(
+                                content: Text(
+                                  tr('wallet_imported'),
+                                  style: const TextStyle(color: Colors.white),
+                                ),
+                              );
+                              // ok, fetch the transactions & balance
+                              // fetchTransactions(context);
                             } catch (e, stacktrace) {
                               logger('Error importing wallet: $e');
                               if (!mounted) {
                                 return;
                               }
-                              context.replaceSnackbar(
+                              c.replaceSnackbar(
                                 content: Text(
                                   tr('error_importing_wallet'),
                                   style: const TextStyle(color: Colors.red),
@@ -102,17 +112,6 @@ class _ImportDialogState extends State<ImportDialog> {
                                   stackTrace: stacktrace);
                               return;
                             }
-                            if (!mounted) {
-                              return;
-                            }
-                            context.replaceSnackbar(
-                              content: Text(
-                                tr('wallet_imported'),
-                                style: const TextStyle(color: Colors.white),
-                              ),
-                            );
-                            // ok, fetch the transactions & balance
-                            fetchTransactions(context);
                           }
                           if (!mounted) {
                             return;
@@ -209,7 +208,7 @@ class _ImportDialogState extends State<ImportDialog> {
     }
   }
 
-  Future<String> _importWalletWeb() async {
+  Future<String> _importWalletWeb(BuildContext context) async {
     final Completer<String> completer = Completer<String>();
     final html.InputElement input = html.InputElement()..type = 'file';
 
diff --git a/lib/ui/widgets/fifth_screen/pattern_util.dart b/lib/ui/widgets/fifth_screen/pattern_util.dart
index 9fae1f52c9caf34f5efca8600ebd9a41171c4e2c..5c7d69847a05c69167bf118405c85e89549ce973 100644
--- a/lib/ui/widgets/fifth_screen/pattern_util.dart
+++ b/lib/ui/widgets/fifth_screen/pattern_util.dart
@@ -1,12 +1,11 @@
 import 'package:flutter/material.dart';
 
+import '../../ui_helpers.dart';
+
 extension BuildContextX on BuildContext {
-  void replaceSnackbar({
-    required Widget content,
-  }) {
-    final ScaffoldMessengerState scaffoldMessenger = ScaffoldMessenger.of(this);
-    scaffoldMessenger.removeCurrentSnackBar();
-    scaffoldMessenger.showSnackBar(
+  void replaceSnackbar({required Widget content}) {
+    globalMessengerKey.currentState!.removeCurrentSnackBar();
+    globalMessengerKey.currentState!.showSnackBar(
       SnackBar(content: content),
     );
   }