diff --git a/servers/slapd/result.c b/servers/slapd/result.c
index 13a70ed9e9c97055e0e8fc98a949cda2b33712a8..1e8d40622382ff2b8eb75f39e1a74b7039bd5725 100644
--- a/servers/slapd/result.c
+++ b/servers/slapd/result.c
@@ -1694,15 +1694,16 @@ str2result(
 				continue;
 			}
 
-			while ( isspace( (unsigned char) next[ 0 ] ) ) next++;
-			if ( next[ 0 ] != '\0' ) {
+			while ( isspace( (unsigned char) next[ 0 ] ) && next[ 0 ] != '\n' )
+				next++;
+			if ( next[ 0 ] != '\0' && next[ 0 ] != '\n' ) {
 				Debug( LDAP_DEBUG_ANY, "str2result (%s) extra cruft after value\n",
 				    s, 0, 0 );
 				rc = -1;
 				continue;
 			}
 
-			/* FIXME: what if it's larger that max int? */
+			/* FIXME: what if it's larger than max int? */
 			*code = (int)retcode;
 
 		} else if ( strncasecmp( s, "matched", STRLENOF( "matched" ) ) == 0 ) {