diff --git a/src/rcfile.c b/src/rcfile.c
index 59fd38324796050e6ca9cd0926ba032a2b447caf..b88d71af4afff2294e8563d0a619ff615dc35ed8 100644
--- a/src/rcfile.c
+++ b/src/rcfile.c
@@ -848,17 +848,17 @@ void pick_up_name(const char *kind, char *ptr, char **storage)
 
 	/* If the argument starts with a quote, find the terminating quote. */
 	if (*ptr == '"') {
-		char *look = ++ptr;
-
-		look += strlen(ptr);
+		char *look = ptr + strlen(ptr);
 
 		while (*look != '"') {
-			if (--look < ptr) {
+			if (--look == ptr) {
 				rcfile_error(N_("Argument of '%s' lacks closing \""), kind);
 				return;
 			}
 		}
+
 		*look = '\0';
+		ptr++;
 	}
 
 	*storage = mallocstrcpy(*storage, ptr);