diff --git a/app/src/main/java/com/m2049r/xmrwallet/LoginActivity.java b/app/src/main/java/com/m2049r/xmrwallet/LoginActivity.java
index 87f59ab8..159b7e8a 100644
--- a/app/src/main/java/com/m2049r/xmrwallet/LoginActivity.java
+++ b/app/src/main/java/com/m2049r/xmrwallet/LoginActivity.java
@@ -929,8 +929,11 @@ public class LoginActivity extends BaseActivity
 
                     @Override
                     public boolean createWallet(File aFile, String password) {
+                        NodeInfo currentNode = getNode();
+                        final long restoreHeight =
+                                (currentNode != null) ? currentNode.getHeight() - 20 : -1;
                         Wallet newWallet = WalletManager.getInstance()
-                                .createWallet(aFile, password, MNEMONIC_LANGUAGE);
+                                .createWallet(aFile, password, MNEMONIC_LANGUAGE, restoreHeight);
                         boolean success = (newWallet.getStatus() == Wallet.Status.Status_Ok);
                         if (!success) {
                             Timber.e(newWallet.getErrorString());
diff --git a/app/src/main/java/com/m2049r/xmrwallet/LoginFragment.java b/app/src/main/java/com/m2049r/xmrwallet/LoginFragment.java
index 5fa5d0ab..25f6a897 100644
--- a/app/src/main/java/com/m2049r/xmrwallet/LoginFragment.java
+++ b/app/src/main/java/com/m2049r/xmrwallet/LoginFragment.java
@@ -440,7 +440,7 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter
             Collections.sort(nodesToTest, NodeInfo.BestNodeComparator);
             NodeInfo bestNode = nodesToTest.get(0);
             if (bestNode.isValid())
-                return nodesToTest.get(0);
+                return bestNode;
             else
                 return null;
         }
diff --git a/app/src/main/java/com/m2049r/xmrwallet/model/WalletManager.java b/app/src/main/java/com/m2049r/xmrwallet/model/WalletManager.java
index dc894043..bc7db4eb 100644
--- a/app/src/main/java/com/m2049r/xmrwallet/model/WalletManager.java
+++ b/app/src/main/java/com/m2049r/xmrwallet/model/WalletManager.java
@@ -91,14 +91,16 @@ public class WalletManager {
         managedWallet = null;
     }
 
-    public Wallet createWallet(File aFile, String password, String language) {
+    public Wallet createWallet(File aFile, String password, String language, long height) {
         long walletHandle = createWalletJ(aFile.getAbsolutePath(), password, language, getNetworkType().getValue());
         Wallet wallet = new Wallet(walletHandle);
         manageWallet(wallet);
         if (wallet.getStatus() == Wallet.Status.Status_Ok) {
             // (Re-)Estimate restore height based on what we know
-            long oldHeight = wallet.getRestoreHeight();
-            wallet.setRestoreHeight(RestoreHeight.getInstance().getHeight(new Date()));
+            final long oldHeight = wallet.getRestoreHeight();
+            final long restoreHeight =
+                    (height > -1) ? height : RestoreHeight.getInstance().getHeight(new Date());
+            wallet.setRestoreHeight(restoreHeight);
             Timber.d("Changed Restore Height from %d to %d", oldHeight, wallet.getRestoreHeight());
             wallet.setPassword(password); // this rewrites the keys file (which contains the restore height)
         }