diff --git a/src/net/i2p/android/router/loader/AddressEntry.java b/src/net/i2p/android/router/loader/AddressEntry.java
index 7c62cf77e4a43ef17764fdeb4ece1cf07e32ae41..a5fee8b9753e7b00a74e325540d493e85e6ed066 100644
--- a/src/net/i2p/android/router/loader/AddressEntry.java
+++ b/src/net/i2p/android/router/loader/AddressEntry.java
@@ -1,13 +1,21 @@
 package net.i2p.android.router.loader;
 
+import net.i2p.data.Destination;
+
 public class AddressEntry {
     private final String mHostName;
+    private final Destination mDest;
 
-    public AddressEntry(String hostName) {
+    public AddressEntry(String hostName, Destination dest) {
         mHostName = hostName;
+        mDest = dest;
     }
 
     public String getHostName() {
         return mHostName;
     }
+
+    public Destination getDestination() {
+        return mDest;
+    }
 }
diff --git a/src/net/i2p/android/router/loader/AddressEntryLoader.java b/src/net/i2p/android/router/loader/AddressEntryLoader.java
index a513f10b8da32e4d7f143e7d687946ecf1c2d66c..00ed305342ef84e597a6999e94b2c3911d8827d0 100644
--- a/src/net/i2p/android/router/loader/AddressEntryLoader.java
+++ b/src/net/i2p/android/router/loader/AddressEntryLoader.java
@@ -2,12 +2,12 @@ package net.i2p.android.router.loader;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Locale;
-import java.util.Set;
-import java.util.TreeSet;
-
+import java.util.Map;
+import java.util.Properties;
+import java.util.TreeMap;
 import net.i2p.android.router.util.Util;
 import net.i2p.client.naming.NamingService;
+import net.i2p.data.Destination;
 import net.i2p.router.RouterContext;
 
 import android.content.Context;
@@ -35,16 +35,17 @@ public class AddressEntryLoader extends AsyncTaskLoader<List<AddressEntry>> {
         Util.i("NamingService: " + ns.getName());
         // After router shutdown we get nothing... why?
         List<AddressEntry> ret = new ArrayList<AddressEntry>();
-        Set<String> names = new TreeSet<String>();
-        names.addAll(ns.getNames());
-        for (String hostName : names) {
-            if (mFilter != null && !hostName.toLowerCase(Locale.US).contains(
-                    mFilter.toLowerCase(Locale.US)))
-                continue;
-
-            AddressEntry name = new AddressEntry(hostName);
-            ret.add(name);
-        }
+        Map<String, Destination> names = new TreeMap<String, Destination>();
+
+        Properties searchProps = new Properties();
+        // Needed for HostsTxtNamingService
+        searchProps.setProperty("file", mBook);
+        if (mFilter != null && mFilter.length() > 0)
+            searchProps.setProperty("search", mFilter);
+
+        names.putAll(ns.getEntries(searchProps));
+        for (String hostName : names.keySet())
+            ret.add(new AddressEntry(hostName, names.get(hostName)));
         return ret;
     }