diff --git a/contrib/slapd-modules/passwd/pbkdf2/pw-pbkdf2.c b/contrib/slapd-modules/passwd/pbkdf2/pw-pbkdf2.c
index 262534b7d9adf83f33e4f2f2c23b54812165652d..5f4a0271f271bc1eee1d231b257889050fe97f3a 100644
--- a/contrib/slapd-modules/passwd/pbkdf2/pw-pbkdf2.c
+++ b/contrib/slapd-modules/passwd/pbkdf2/pw-pbkdf2.c
@@ -59,15 +59,14 @@ const struct berval pbkdf2_sha512_scheme = BER_BVC("{PBKDF2-SHA512}");
 static int b64_to_ab64(char *str)
 {
 	char *p = str;
-	while(*p++){
+	do {
 		if(*p == '+'){
 			*p = '.';
 		}
 		if(*p == '='){
 			*p = '\0';
-			break;
 		}
-	}
+	} while(*p++);
 	return 0;
 }