diff --git a/ChangeLog b/ChangeLog
index 942502cb50..4cfa3dad35 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -22,6 +22,8 @@ Changes in version 0.2.0.9-alpha - 2007-10-??
- Make the "next period" votes into "current period" votes immediately
after publishing the consensus; avoid a heisenbug that made them stick
around indefinitely.
+ - Correctly check for bad options to the "PublishServerDescriptor"
+ config option. Bugfix on 0.2.0.1-alpha; reported by Matt Edman.
o Minor bugfixes (memory leaks):
- Stop leaking memory on failing case of base32_decode. Bugfix on
diff --git a/src/or/config.c b/src/or/config.c
index 0bf88b2e44..f5a521e094 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -2391,9 +2391,8 @@ ensure_bandwidth_cap(uint64_t *value, const char *desc, char **msg)
/** Parse an authority type from list and write it to *auth. If
* compatible is non-zero, treat "1" as "v1,v2" and treat "0" as "".
- * Return 0 on success or -(idx of first bad member) if not a recognized
- * authority type.
- */
+ * Return 0 on success or -1 if not a recognized authority type (in which
+ * case the value of *auth is undefined). */
static int
parse_authority_type_from_list(smartlist_t *list, authority_type_t *auth,
int compatible)
@@ -2418,7 +2417,7 @@ parse_authority_type_from_list(smartlist_t *list, authority_type_t *auth,
else if (!strcasecmp(string, "") || (compatible && !strcmp(string, "0")))
/* no authority */;
else
- return - string_sl_idx;
+ return -1;
});
return 0;
}