diff --git a/servers/slapd/back-sock/result.c b/servers/slapd/back-sock/result.c
index 3fba10fa4eea7e98d65244d059fb32d19c5418ff..1b5fabb66f69832a468791e6700e01338b729c33 100644
--- a/servers/slapd/back-sock/result.c
+++ b/servers/slapd/back-sock/result.c
@@ -77,6 +77,14 @@ sock_read_and_send_results(
 			continue;
 		}
 
+		if ( strncasecmp( line, "CONTINUE", 8 ) == 0 ) {
+			struct sockinfo	*si = (struct sockinfo *) op->o_bd->be_private;
+			/* Only valid when operating as an overlay! */
+			assert( si->si_ops != 0 );
+			rs->sr_err = SLAP_CB_CONTINUE;
+			goto skip;
+		}
+
 		len = strlen( line );
 		while ( bp + len + 1 - buf > bsize ) {
 			size_t offset = bp - buf;
@@ -92,13 +100,6 @@ sock_read_and_send_results(
 			if ( strncasecmp( buf, "RESULT", 6 ) == 0 ) {
 				break;
 			}
-			if ( strncasecmp( buf, "CONTINUE", 8 ) == 0 ) {
-				struct sockinfo	*si = (struct sockinfo *) op->o_bd->be_private;
-				/* Only valid when operating as an overlay! */
-				assert( si->si_ops != 0 );
-				rs->sr_err = SLAP_CB_CONTINUE;
-				goto skip;
-			}
 
 			if ( (rs->sr_entry = str2entry( buf )) == NULL ) {
 				Debug( LDAP_DEBUG_ANY, "str2entry(%s) failed\n",