diff --git a/quic/tools/quic_epoll_client_factory.cc b/quic/tools/quic_epoll_client_factory.cc
index 049646b..a74fba3 100644
--- a/quic/tools/quic_epoll_client_factory.cc
+++ b/quic/tools/quic_epoll_client_factory.cc
@@ -38,16 +38,17 @@
 }  // namespace
 
 std::unique_ptr<QuicSpdyClientBase> QuicEpollClientFactory::CreateClient(
-    std::string host,
+    std::string host_for_handshake,
+    std::string host_for_lookup,
     uint16_t port,
     ParsedQuicVersionVector versions,
     std::unique_ptr<ProofVerifier> verifier) {
-  QuicSocketAddress addr = LookupAddress(host, QuicStrCat(port));
+  QuicSocketAddress addr = LookupAddress(host_for_lookup, QuicStrCat(port));
   if (!addr.IsInitialized()) {
-    QUIC_LOG(ERROR) << "Unable to resolve address: " << host;
+    QUIC_LOG(ERROR) << "Unable to resolve address: " << host_for_lookup;
     return nullptr;
   }
-  QuicServerId server_id(host, port, false);
+  QuicServerId server_id(host_for_handshake, port, false);
   return QuicMakeUnique<QuicClient>(addr, server_id, versions, &epoll_server_,
                                     std::move(verifier));
 }
diff --git a/quic/tools/quic_epoll_client_factory.h b/quic/tools/quic_epoll_client_factory.h
index a083643..2ee26d9 100644
--- a/quic/tools/quic_epoll_client_factory.h
+++ b/quic/tools/quic_epoll_client_factory.h
@@ -14,7 +14,8 @@
 class QuicEpollClientFactory : public QuicToyClient::ClientFactory {
  public:
   std::unique_ptr<QuicSpdyClientBase> CreateClient(
-      std::string host,
+      std::string host_for_handshake,
+      std::string host_for_lookup,
       uint16_t port,
       ParsedQuicVersionVector versions,
       std::unique_ptr<ProofVerifier> verifier) override;
diff --git a/quic/tools/quic_toy_client.cc b/quic/tools/quic_toy_client.cc
index 4fa00db..06ae497 100644
--- a/quic/tools/quic_toy_client.cc
+++ b/quic/tools/quic_toy_client.cc
@@ -221,7 +221,7 @@
 
   // Build the client, and try to connect.
   std::unique_ptr<QuicSpdyClientBase> client = client_factory_->CreateClient(
-      url.host(), port, versions, std::move(proof_verifier));
+      url.host(), host, port, versions, std::move(proof_verifier));
 
   int32_t initial_mtu = GetQuicFlag(FLAGS_initial_mtu);
   client->set_initial_max_packet_length(
diff --git a/quic/tools/quic_toy_client.h b/quic/tools/quic_toy_client.h
index e832ac7..1a20122 100644
--- a/quic/tools/quic_toy_client.h
+++ b/quic/tools/quic_toy_client.h
@@ -18,10 +18,12 @@
    public:
     virtual ~ClientFactory() = default;
 
-    // Creates a new client configured to connect to |host:port| supporting
-    // |versions|, and using |verifier| to verify proofs.
+    // Creates a new client configured to connect to |host_for_lookup:port|
+    // supporting |versions|, using |host_for_handshake| for handshake and
+    // |verifier| to verify proofs.
     virtual std::unique_ptr<QuicSpdyClientBase> CreateClient(
-        std::string host,
+        std::string host_for_handshake,
+        std::string host_for_lookup,
         uint16_t port,
         ParsedQuicVersionVector versions,
         std::unique_ptr<ProofVerifier> verifier) = 0;
