diff --git a/src/net/i2p/android/i2ptunnel/activity/TunnelDetailActivity.java b/src/net/i2p/android/i2ptunnel/activity/TunnelDetailActivity.java
index 9cdbae024c107b1ffaaa97e4372353314166fce8..8965506a19275e9af8781b1d8b91ee2647b26f96 100644
--- a/src/net/i2p/android/i2ptunnel/activity/TunnelDetailActivity.java
+++ b/src/net/i2p/android/i2ptunnel/activity/TunnelDetailActivity.java
@@ -22,7 +22,7 @@ public class TunnelDetailActivity extends I2PActivityBase implements
 
     // TunnelDetailFragment.OnTunnelDeletedListener
 
-    public void onTunnelDeleted() {
+    public void onTunnelDeleted(int tunnelId, int numTunnelsLeft) {
         finish();
     }
 }
diff --git a/src/net/i2p/android/i2ptunnel/activity/TunnelListActivity.java b/src/net/i2p/android/i2ptunnel/activity/TunnelListActivity.java
index b57a2c498eaa15b9bca2c19f339b9fe85faafeee..c8d318daa57993116e1e0dca130d28df5996ee74 100644
--- a/src/net/i2p/android/i2ptunnel/activity/TunnelListActivity.java
+++ b/src/net/i2p/android/i2ptunnel/activity/TunnelListActivity.java
@@ -86,7 +86,19 @@ public class TunnelListActivity extends I2PActivityBase implements
 
     // TunnelDetailFragment.OnTunnelDeletedListener
 
-    public void onTunnelDeleted() {
-        getSupportFragmentManager().popBackStack();
+    public void onTunnelDeleted(int tunnelId, int numTunnelsLeft) {
+        // Should only get here in two-pane mode, but just to be safe:
+        if (mTwoPane) {
+            if (numTunnelsLeft > 0) {
+                TunnelDetailFragment detailFrag = TunnelDetailFragment.newInstance(
+                        (tunnelId > 0 ? tunnelId - 1 : 0));
+                getSupportFragmentManager().beginTransaction()
+                    .replace(R.id.detail_fragment, detailFrag).commit();
+            } else {
+                TunnelDetailFragment detailFrag = (TunnelDetailFragment) getSupportFragmentManager().findFragmentById(R.id.detail_fragment);
+                getSupportFragmentManager().beginTransaction()
+                    .remove(detailFrag).commit();
+            }
+        }
     }
 }
diff --git a/src/net/i2p/android/i2ptunnel/fragment/TunnelDetailFragment.java b/src/net/i2p/android/i2ptunnel/fragment/TunnelDetailFragment.java
index c618b9dc808eb425e5f7fd0467b96246ab220dc8..b5e1dbefc5c29688f6dae1f185d629de1d767eb3 100644
--- a/src/net/i2p/android/i2ptunnel/fragment/TunnelDetailFragment.java
+++ b/src/net/i2p/android/i2ptunnel/fragment/TunnelDetailFragment.java
@@ -42,7 +42,7 @@ public class TunnelDetailFragment extends Fragment {
 
     // Container Activity must implement this interface
     public interface OnTunnelDeletedListener {
-        public void onTunnelDeleted();
+        public void onTunnelDeleted(int tunnelId, int numTunnelsLeft);
     }
 
     @Override
@@ -133,7 +133,8 @@ public class TunnelDetailFragment extends Fragment {
                                             dialog.dismiss();
                                             Toast.makeText(getActivity().getApplicationContext(),
                                                     msgs.get(0), Toast.LENGTH_LONG).show();
-                                            mCallback.onTunnelDeleted();
+                                            mCallback.onTunnelDeleted(mTunnel.getId(),
+                                                    mGroup.getControllers().size());
                                         }
                                     })
                             .setNegativeButton(android.R.string.cancel, null)