diff --git a/src/feature/dirauth/dirauth_config.c b/src/feature/dirauth/dirauth_config.c
index 3334213ab4b576948a959e39c13708ccd53177d6..13700a31b085204e6f48c2b6a6f2eba4e963cd4f 100644
--- a/src/feature/dirauth/dirauth_config.c
+++ b/src/feature/dirauth/dirauth_config.c
@@ -106,16 +106,16 @@ options_validate_dirauth_mode(const or_options_t *old_options,
     if (options->GuardfractionFile && !old_options) {
       dirserv_read_guardfraction_file(options->GuardfractionFile, NULL);
     }
-  }
 
-  if (options->AuthoritativeDir && !options->DirPort_set)
-    REJECT("Running as authoritative directory, but no DirPort set.");
+    if (!options->DirPort_set)
+      REJECT("Running as authoritative directory, but no DirPort set.");
 
-  if (options->AuthoritativeDir && !options->ORPort_set)
-    REJECT("Running as authoritative directory, but no ORPort set.");
+    if (!options->ORPort_set)
+      REJECT("Running as authoritative directory, but no ORPort set.");
 
-  if (options->AuthoritativeDir && options->ClientOnly)
-    REJECT("Running as authoritative directory, but ClientOnly also set.");
+    if (options->ClientOnly)
+      REJECT("Running as authoritative directory, but ClientOnly also set.");
+  }
 
   return 0;
 }