diff --git a/AndroidManifest.xml.in b/AndroidManifest.xml.in
index 4b807300a0f10fa9d688106d7584bf3a3c0ebb76..62206439d2c5eb54e55828d1f6d14f95732c4da4 100644
--- a/AndroidManifest.xml.in
+++ b/AndroidManifest.xml.in
@@ -65,6 +65,10 @@
             <meta-data android:name="android.app.searchable"
                        android:resource="@xml/searchable_addressbook"/>
         </activity>
+        <activity android:name=".activity.I2PTunnelActivity"
+                  android:label="I2PTunnel"
+                  android:launchMode="singleTop" >
+        </activity>
         <activity android:name=".activity.LogActivity"
                   android:label="I2P Logs"
                   android:parentActivityName=".activity.MainActivity" >
diff --git a/res/layout/listitem_i2ptunnel.xml b/res/layout/listitem_i2ptunnel.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7e058a0f98a7685a630c0a3c905840c61d29cf1e
--- /dev/null
+++ b/res/layout/listitem_i2ptunnel.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:padding="6dp"
+    android:textSize="16sp" >
+</TextView>
diff --git a/res/menu/fragment_i2ptunnel_actions.xml b/res/menu/fragment_i2ptunnel_actions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c17e84d2621071e29387a6c4d176c01995a27966
--- /dev/null
+++ b/res/menu/fragment_i2ptunnel_actions.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+      xmlns:i2pandroid="http://schemas.android.com/apk/res-auto" >
+    <item android:id="@+id/action_add_tunnel"
+          android:title="@string/action_add"
+          android:icon="@drawable/ic_content_new"
+          i2pandroid:showAsAction="ifRoom" />
+
+</menu>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 0fdd1d8fdc058cc0535e5a2c702c501fe29529e9..4dca6243329d0a28d090cf15c96046924db57746 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -3,6 +3,7 @@
     <string-array name="navdrawer_activity_titles">
         <item>@string/label_home</item>
         <item>@string/label_addressbook</item>
+        <item>@string/label_i2ptunnel</item>
         <item>@string/label_logs</item>
         <item>@string/label_error_logs</item>
         <item>@string/label_licenses</item>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index adbfdb73bd4171b5a96d338f74cdbbb464ed7f97..7859366b4eeb1420c99680753c886045339306de 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -11,6 +11,7 @@
     <string name="label_main_controls">Main Controls</string>
     <string name="label_tools">I2P Tools</string>
     <string name="label_addressbook">Addressbook</string>
+    <string name="label_i2ptunnel">I2PTunnel</string>
     <string name="label_logs">Logs</string>
     <string name="label_error_logs">Error Logs</string>
     <string name="label_info_and_pages">Information and pages</string>
@@ -69,4 +70,5 @@
     <string name="settings_label_expl_backupQuantity">Backup quantity</string>
     <string name="settings_desc_expl_backupQuantity">How many tunnel backups</string>
 
+    <string name="i2ptunnel_not_initialized">Tunnels are not initialized yet, please reload in two minutes.</string>
 </resources>
\ No newline at end of file
diff --git a/src/net/i2p/android/router/activity/I2PActivityBase.java b/src/net/i2p/android/router/activity/I2PActivityBase.java
index 0275f14271aa38bf4f184c550e919cbff042d22d..8e396adb81e541e1d7282298e428a0cbb639d310 100644
--- a/src/net/i2p/android/router/activity/I2PActivityBase.java
+++ b/src/net/i2p/android/router/activity/I2PActivityBase.java
@@ -103,15 +103,19 @@ public class I2PActivityBase extends ActionBarActivity {
             startActivity(ab);
             break;
         case 2:
+            Intent itb = new Intent(I2PActivityBase.this, I2PTunnelActivity.class);
+            startActivity(itb);
+            break;
+        case 3:
             Intent log = new Intent(I2PActivityBase.this, LogActivity.class);
             startActivity(log);
             break;
-        case 3:
+        case 4:
             Intent err = new Intent(I2PActivityBase.this, LogActivity.class);
             err.putExtra(LogActivity.ERRORS_ONLY, true);
             startActivity(err);
             break;
-        case 4:
+        case 5:
             Intent lic = new Intent(I2PActivityBase.this, LicenseActivity.class);
             startActivity(lic);
             break;
diff --git a/src/net/i2p/android/router/activity/I2PTunnelActivity.java b/src/net/i2p/android/router/activity/I2PTunnelActivity.java
new file mode 100644
index 0000000000000000000000000000000000000000..567b269d539cfa4bd7c1d24a5df9b0a76e868a66
--- /dev/null
+++ b/src/net/i2p/android/router/activity/I2PTunnelActivity.java
@@ -0,0 +1,19 @@
+package net.i2p.android.router.activity;
+
+import net.i2p.android.router.R;
+import net.i2p.android.router.fragment.I2PTunnelFragment;
+import android.os.Bundle;
+
+public class I2PTunnelActivity extends I2PActivityBase {
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        // Start with the base view
+        if (savedInstanceState == null) {
+            I2PTunnelFragment f = new I2PTunnelFragment();
+            f.setArguments(getIntent().getExtras());
+            getSupportFragmentManager().beginTransaction()
+                    .add(R.id.main_content, f).commit();
+        }
+    }
+}
diff --git a/src/net/i2p/android/router/fragment/I2PTunnelFragment.java b/src/net/i2p/android/router/fragment/I2PTunnelFragment.java
new file mode 100644
index 0000000000000000000000000000000000000000..a0894a5681c32fd48877ea153369633ac5a64741
--- /dev/null
+++ b/src/net/i2p/android/router/fragment/I2PTunnelFragment.java
@@ -0,0 +1,57 @@
+package net.i2p.android.router.fragment;
+
+import net.i2p.android.router.R;
+import net.i2p.i2ptunnel.TunnelControllerGroup;
+import android.os.Bundle;
+import android.support.v4.app.ListFragment;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+
+public class I2PTunnelFragment extends ListFragment {
+    private TunnelControllerGroup mGroup;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setHasOptionsMenu(true);
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+
+        TunnelControllerGroup tcg;
+        String error;
+        try {
+            tcg = TunnelControllerGroup.getInstance();
+            error = tcg == null ? getResources().getString(R.string.i2ptunnel_not_initialized) : null;
+        } catch (IllegalArgumentException iae) {
+            tcg = null;
+            error = iae.toString();
+        }
+
+        if (tcg != null) {
+            mGroup = tcg;
+            setEmptyText("Win!");
+        } else {
+            setEmptyText(error);
+        }
+    }
+
+    @Override
+    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+        inflater.inflate(R.menu.fragment_i2ptunnel_actions, menu);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        // Handle presses on the action bar items
+        switch (item.getItemId()) {
+            case R.id.action_add_tunnel:
+                return true;
+            default:
+                return super.onOptionsItemSelected(item);
+        }
+    }
+}