diff --git a/tests/progs/slapd-search.c b/tests/progs/slapd-search.c
index 6b15ab4ecc2c894775b29e8b73d170c8fb00e122..c3aa0ee22742c77d4f1abc3696f46b5bdd4edb6c 100644
--- a/tests/progs/slapd-search.c
+++ b/tests/progs/slapd-search.c
@@ -71,6 +71,7 @@ usage( char *name, char o )
 		"[-C] "
 		"[-F] "
 		"[-N] "
+		"[-S] "
 		"[-i <ignore>] "
 		"[-l <loops>] "
 		"[-L <outerloops>] "
@@ -82,6 +83,9 @@ usage( char *name, char o )
 	exit( EXIT_FAILURE );
 }
 
+/* Just send requests without reading responses */
+static int swamp;
+
 int
 main( int argc, char **argv )
 {
@@ -111,7 +115,7 @@ main( int argc, char **argv )
 	/* by default, tolerate referrals and no such object */
 	tester_ignore_str2errlist( "REFERRAL,NO_SUCH_OBJECT" );
 
-	while ( ( i = getopt( argc, argv, "Aa:b:CD:f:FH:h:i:l:L:Np:r:s:t:T:w:" ) ) != EOF )
+	while ( ( i = getopt( argc, argv, "Aa:b:CD:f:FH:h:i:l:L:Np:r:Ss:t:T:w:" ) ) != EOF )
 	{
 		switch ( i ) {
 		case 'A':
@@ -201,6 +205,10 @@ main( int argc, char **argv )
 			}
 			break;
 
+		case 'S':
+			swamp++;
+			break;
+
 		case 's':
 			scope = ldap_pvt_str2scope( optarg );
 			if ( scope == -1 ) {
@@ -435,6 +443,15 @@ retry:;
 	for ( ; i < innerloop; i++ ) {
 		LDAPMessage *res = NULL;
 
+		if (swamp) {
+			int msgid;
+			rc = ldap_search_ext( ld, sbase, scope,
+					filter, NULL, noattrs, NULL, NULL,
+					NULL, LDAP_NO_LIMIT, &msgid );
+			if ( rc == LDAP_SUCCESS ) continue;
+			else break;
+		}
+
 		rc = ldap_search_ext_s( ld, sbase, scope,
 				filter, attrs, noattrs, NULL, NULL,
 				NULL, LDAP_NO_LIMIT, &res );