diff --git a/app/src/full/AndroidManifest.xml b/app/src/full/AndroidManifest.xml
index ed877de77..55ef16a6e 100644
--- a/app/src/full/AndroidManifest.xml
+++ b/app/src/full/AndroidManifest.xml
@@ -52,6 +52,7 @@
                 android:label="@string/swap"
                 android:name=".views.swap.SwapWorkflowActivity"
                 android:parentActivityName=".views.main.MainActivity"
+                android:launchMode="singleTask"
                 android:theme="@style/SwapTheme.Wizard"
                 android:screenOrientation="portrait"
                 android:configChanges="orientation|keyboardHidden">
diff --git a/app/src/full/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java b/app/src/full/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java
index dd7a599da..83b8fec70 100644
--- a/app/src/full/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java
+++ b/app/src/full/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java
@@ -111,6 +111,7 @@ public class SwapWorkflowActivity extends AppCompatActivity {
     private Toolbar toolbar;
     private SwapView currentView;
     private boolean hasPreparedLocalRepo;
+    private boolean newIntent;
     private NewRepoConfig confirmSwapConfig;
     private LocalBroadcastManager localBroadcastManager;
     private WifiManager wifiManager;
@@ -346,6 +347,11 @@ public class SwapWorkflowActivity extends AppCompatActivity {
                 new IntentFilter(UpdateService.LOCAL_ACTION_STATUS));
 
         checkIncomingIntent();
+
+        if (newIntent) {
+            showRelevantView();
+            newIntent = false;
+        }
     }
 
     @Override
@@ -357,6 +363,13 @@ public class SwapWorkflowActivity extends AppCompatActivity {
         localBroadcastManager.unregisterReceiver(repoUpdateReceiver);
     }
 
+    @Override
+    protected void onNewIntent(Intent intent) {
+        super.onNewIntent(intent);
+        setIntent(intent);
+        newIntent = true;
+    }
+
     /**
      * Check whether incoming {@link Intent} is a swap repo, and ensure that
      * it is a valid swap URL.  The hostname can only be either an IP or