diff --git a/cw_bitcoin/lib/electrum.dart b/cw_bitcoin/lib/electrum.dart
index ec4a7d45c..b3aa19bd7 100644
--- a/cw_bitcoin/lib/electrum.dart
+++ b/cw_bitcoin/lib/electrum.dart
@@ -113,9 +113,13 @@ class ElectrumClient {
       },
       onDone: () {
         unterminatedString = '';
-        if (host == socket?.address.host) {
-          socket = null;
-          _setConnectionStatus(ConnectionStatus.disconnected);
+        try {
+          if (host == socket?.address.host) {
+            socket?.destroy();
+            _setConnectionStatus(ConnectionStatus.disconnected);
+          }
+        } catch(e) {
+          print(e.toString());
         }
       },
       cancelOnError: true,
diff --git a/cw_bitcoin/lib/electrum_wallet.dart b/cw_bitcoin/lib/electrum_wallet.dart
index 222a16e91..2db6eec1c 100644
--- a/cw_bitcoin/lib/electrum_wallet.dart
+++ b/cw_bitcoin/lib/electrum_wallet.dart
@@ -2067,9 +2067,8 @@ abstract class ElectrumWalletBase
 
       _isTryingToConnect = true;
 
-      Timer(Duration(seconds: 10), () {
-        if (this.syncStatus is NotConnectedSyncStatus ||
-            this.syncStatus is LostConnectionSyncStatus) {
+      Timer(Duration(seconds: 5), () {
+        if (this.syncStatus is NotConnectedSyncStatus || this.syncStatus is LostConnectionSyncStatus) {
           this.electrumClient.connectToUri(
                 node!.uri,
                 useSSL: node!.useSSL ?? false,