diff --git a/src/com/google/bitcoin/core/VersionMessage.java b/src/com/google/bitcoin/core/VersionMessage.java
index <HASH>..<HASH> 100644
--- a/src/com/google/bitcoin/core/VersionMessage.java
+++ b/src/com/google/bitcoin/core/VersionMessage.java
@@ -75,10 +75,13 @@ public class VersionMessage extends Message {
         // Note that the official client doesn't do anything with these, and finding out your own external IP address
         // is kind of tricky anyway, so we just put nonsense here for now.
         try {
-            myAddr = new PeerAddress(InetAddress.getLocalHost(), params.port, 0);
-            theirAddr = new PeerAddress(InetAddress.getLocalHost(), params.port, 0);
+            // We hard-code the IPv4 localhost address here rather than use InetAddress.getLocalHost() because some
+            // mobile phones have broken localhost DNS entries, also, this is faster.
+            final byte[] localhost = new byte[] { 127, 0, 0, 1 };
+            myAddr = new PeerAddress(InetAddress.getByAddress(localhost), params.port, 0);
+            theirAddr = new PeerAddress(InetAddress.getByAddress(localhost), params.port, 0);
         } catch (UnknownHostException e) {
-            throw new RuntimeException(e);  // Cannot happen.
+            throw new RuntimeException(e);  // Cannot happen (illegal IP length).
         }
         subVer = "/BitCoinJ:0.4-SNAPSHOT/";
         bestHeight = newBestHeight;
Create the localhost address without relying on a method that does DNS lookups behind the scenes. Resolves issue <I>.