diff --git a/AndroidManifest.xml.in b/AndroidManifest.xml.in
index 5216c23751e0885f37679a2b7f5191a5e75e6d44..1c60ece10c58d3110698348884041ea4707b1cb2 100644
--- a/AndroidManifest.xml.in
+++ b/AndroidManifest.xml.in
@@ -72,6 +72,10 @@
             <meta-data android:name="android.app.searchable"
                        android:resource="@xml/searchable_addressbook"/>
         </activity>
+        <activity android:name=".activity.AddressbookAddWizardActivity"
+                  android:label="Add new Destination"
+                  android:parentActivityName=".activity.AddressbookActivity" >
+        </activity>
         <activity android:name="net.i2p.android.i2ptunnel.activity.TunnelListActivity"
                   android:label="I2PTunnel"
                   android:launchMode="singleTop" >
diff --git a/src/net/i2p/android/router/activity/AddressbookAddWizardActivity.java b/src/net/i2p/android/router/activity/AddressbookAddWizardActivity.java
new file mode 100644
index 0000000000000000000000000000000000000000..13d60507756293ca1dc8f614e542268958dd330c
--- /dev/null
+++ b/src/net/i2p/android/router/activity/AddressbookAddWizardActivity.java
@@ -0,0 +1,43 @@
+package net.i2p.android.router.activity;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.app.DialogFragment;
+import net.i2p.android.router.fragment.AddressbookFragment;
+import net.i2p.android.wizard.model.AbstractWizardModel;
+import net.i2p.android.wizard.ui.AbstractWizardActivity;
+
+public class AddressbookAddWizardActivity extends AbstractWizardActivity {
+    @Override
+    protected AbstractWizardModel onCreateModel() {
+        return new AddressbookAddWizardModel(this);
+    }
+
+    @Override
+    protected DialogFragment onGetFinishWizardDialog() {
+        return new DialogFragment() {
+            @Override
+            public Dialog onCreateDialog(Bundle savedInstanceState) {
+                return new AlertDialog.Builder(getActivity())
+                        .setMessage("Add to private addressbook?")
+                        .setPositiveButton("Add",
+                                new DialogInterface.OnClickListener() {
+
+                                    public void onClick(DialogInterface dialog, int which) {
+                                        Intent result = new Intent();
+                                        setResult(Activity.RESULT_OK, result);
+                                        result.putExtra(AddressbookFragment.ADD_WIZARD_DATA, mWizardModel.save());
+                                        dialog.dismiss();
+                                        finish();
+                                    }
+                                })
+                        .setNegativeButton(android.R.string.cancel, null)
+                        .create();
+            }
+        };
+    }
+}
diff --git a/src/net/i2p/android/router/activity/AddressbookAddWizardModel.java b/src/net/i2p/android/router/activity/AddressbookAddWizardModel.java
new file mode 100644
index 0000000000000000000000000000000000000000..c3cd99421acb5bfe7649c6e6a46755744b5a775a
--- /dev/null
+++ b/src/net/i2p/android/router/activity/AddressbookAddWizardModel.java
@@ -0,0 +1,29 @@
+package net.i2p.android.router.activity;
+
+import android.content.Context;
+import android.content.res.Resources;
+import net.i2p.android.wizard.model.AbstractWizardModel;
+import net.i2p.android.wizard.model.PageList;
+import net.i2p.android.wizard.model.SingleTextFieldPage;
+
+public class AddressbookAddWizardModel extends AbstractWizardModel {
+    public AddressbookAddWizardModel(Context context) {
+        super(context);
+    }
+
+    @Override
+    protected PageList onNewRootPageList() {
+        Resources res = mContext.getResources();
+
+        return new PageList(
+            new SingleTextFieldPage(this, "Name")
+                .setDescription("The name")
+                .setRequired(true),
+
+            new SingleTextFieldPage(this, "Destination")
+                .setDescription("The destination")
+                .setRequired(true)
+            );
+    }
+
+}
diff --git a/src/net/i2p/android/router/fragment/AddressbookFragment.java b/src/net/i2p/android/router/fragment/AddressbookFragment.java
index 700275c36c2c3c0fb4f652147515800f013adca3..8f2dc2ee5fd462c1c4d0ad98298d14201bd38276 100644
--- a/src/net/i2p/android/router/fragment/AddressbookFragment.java
+++ b/src/net/i2p/android/router/fragment/AddressbookFragment.java
@@ -15,6 +15,7 @@ import android.widget.ListView;
 import android.widget.TextView;
 import java.util.List;
 import net.i2p.android.router.R;
+import net.i2p.android.router.activity.AddressbookAddWizardActivity;
 import net.i2p.android.router.activity.AddressbookSettingsActivity;
 import net.i2p.android.router.activity.HelpActivity;
 import net.i2p.android.router.adapter.AddressEntryAdapter;
@@ -28,6 +29,9 @@ public class AddressbookFragment extends ListFragment implements
     public static final String BOOK_NAME = "book_name";
     public static final String ROUTER_BOOK = "hosts.txt";
     public static final String PRIVATE_BOOK = "privatehosts.txt";
+    public static final String ADD_WIZARD_DATA = "add_wizard_data";
+
+    static final int ADD_WIZARD_REQUEST = 1;
 
     private static final int ROUTER_LOADER_ID = 1;
     private static final int PRIVATE_LOADER_ID = 2;
@@ -116,8 +120,10 @@ public class AddressbookFragment extends ListFragment implements
         // Handle presses on the action bar items
         
         switch (item.getItemId()) {
-            //case R.id.action_add_to_addressbook:
-            //    return true;
+        case R.id.action_add_to_addressbook:
+            Intent wi = new Intent(getActivity(), AddressbookAddWizardActivity.class);
+            startActivityForResult(wi, ADD_WIZARD_REQUEST);
+            return true;
         case R.id.action_addressbook_settings:
             Intent si = new Intent(getActivity(), AddressbookSettingsActivity.class);
             startActivity(si);
@@ -132,6 +138,23 @@ public class AddressbookFragment extends ListFragment implements
         }
     }
 
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (requestCode == ADD_WIZARD_REQUEST &&
+                resultCode == Activity.RESULT_OK &&
+                PRIVATE_BOOK.equals(mBook)) {
+            // Save the new entry
+            Bundle entryData = data.getExtras().getBundle(ADD_WIZARD_DATA);
+            // Reload the list
+            if (getRouterContext() != null) {
+                setListShown(false);
+                getLoaderManager().restartLoader(PRIVATE_LOADER_ID, null, this);
+            } else {
+                // Just add to list
+            }
+        }
+    }
+
     public void filterAddresses(String query) {
         mCurFilter = !TextUtils.isEmpty(query) ? query : null;
         setListShown(false);