diff --git a/changes/bug18704 b/changes/bug18704
new file mode 100644
index 0000000000000000000000000000000000000000..966cc2a5f38739360090c5133282ff22c347a624
--- /dev/null
+++ b/changes/bug18704
@@ -0,0 +1,5 @@
+  o Major bugfixes (hidden service client)
+    - With FetchHidServDescriptors set to 0, there is no descriptor fetch
+      (which is intended) but also no descriptor cache lookup was done
+      making any Tor client not working with this option unset. Resolves
+      ticket #18704. Patch by "twim"; Bugfix on tor-0.2.0.20-rc.
diff --git a/src/or/rendclient.c b/src/or/rendclient.c
index 7e92dce6d46124802dc9926c0a5a91f17fff67ad..64d367354b77957fd72490bc20a13915e4df3552 100644
--- a/src/or/rendclient.c
+++ b/src/or/rendclient.c
@@ -895,12 +895,6 @@ rend_client_refetch_v2_renddesc(rend_data_t *rend_query)
   rend_cache_entry_t *e = NULL;
 
   tor_assert(rend_query);
-  /* Are we configured to fetch descriptors? */
-  if (!get_options()->FetchHidServDescriptors) {
-    log_warn(LD_REND, "We received an onion address for a v2 rendezvous "
-        "service descriptor, but are not fetching service descriptors.");
-    return;
-  }
   /* Before fetching, check if we already have a usable descriptor here. */
   if (rend_cache_lookup_entry(rend_query->onion_address, -1, &e) == 0 &&
       rend_client_any_intro_points_usable(e)) {
@@ -908,6 +902,12 @@ rend_client_refetch_v2_renddesc(rend_data_t *rend_query)
                       "already have a usable descriptor here. Not fetching.");
     return;
   }
+  /* Are we configured to fetch descriptors? */
+  if (!get_options()->FetchHidServDescriptors) {
+    log_warn(LD_REND, "We received an onion address for a v2 rendezvous "
+        "service descriptor, but are not fetching service descriptors.");
+    return;
+  }
   log_debug(LD_REND, "Fetching v2 rendezvous descriptor for service %s",
             safe_str_client(rend_query->onion_address));