diff --git a/src/http_fetcher.h b/src/http_fetcher.h
index 06d07bb..d0fd827 100644
--- a/src/http_fetcher.h
+++ b/src/http_fetcher.h
@@ -39,6 +39,10 @@
   HttpFetcherDelegate* delegate() const { return delegate_; }
   int http_response_code() const { return http_response_code_; }
 
+  // Optional: Set the name servers to use
+  void set_nameservers(const std::vector<std::string>& nameservers) {
+    nameservers_ = nameservers; }
+
   // Optional: Post data to the server. The HttpFetcher should make a copy
   // of this data and upload it via HTTP POST during the transfer.
   void SetPostData(const void* data, size_t size) {
@@ -69,6 +73,9 @@
   // The URL we're actively fetching from
   std::string url_;
 
+  // The name servers to use (if not empty).
+  std::vector<std::string> nameservers_;
+
   // POST data for the transfer, and whether or not it was ever set
   bool post_data_set_;
   std::vector<char> post_data_;
diff --git a/src/libcurl_http_fetcher.cc b/src/libcurl_http_fetcher.cc
index 94b0e2c..59352b5 100644
--- a/src/libcurl_http_fetcher.cc
+++ b/src/libcurl_http_fetcher.cc
@@ -10,11 +10,13 @@
 #include <config.h>
 
 #include <algorithm>
+#include <vector>
 
 #include <glog/logging.h>  // NOLINT
 
 using std::max;
 using std::make_pair;
+using std::vector;
 
 // This is a concrete implementation of HttpFetcher that uses libcurl to do the
 // http work.
@@ -43,6 +45,22 @@
   curl_handle_ = curl_easy_init();
   CHECK(curl_handle_);
 
+  std::string nameservers_str;
+  for (vector<std::string>::const_iterator it(nameservers_.begin());
+       it != nameservers_.end(); it++) {
+    if (!nameservers_str.empty())
+      nameservers_str += ",";
+    nameservers_str += *it;
+  }
+  LOG(INFO) << "LibcurlHttpFetcher: nameservers = " << nameservers_str;
+
+  if (!nameservers_str.empty()) {
+    CHECK_EQ(curl_easy_setopt(curl_handle_,
+                              CURLOPT_DNS_SERVERS,
+                              nameservers_str.c_str()),
+             CURLE_OK);
+  }
+
   if (post_data_set_) {
     CHECK_EQ(curl_easy_setopt(curl_handle_, CURLOPT_POST, 1), CURLE_OK);
     CHECK_EQ(curl_easy_setopt(curl_handle_, CURLOPT_POSTFIELDS,
