diff --git a/src/test/ldap/t/001_auth.pl b/src/test/ldap/t/001_auth.pl
index 6c02f2530b..ee1bf95b32 100644
--- a/src/test/ldap/t/001_auth.pl
+++ b/src/test/ldap/t/001_auth.pl
@@ -117,6 +117,15 @@ END
 	kill 'INT', `cat $slapd_pidfile` if -f $slapd_pidfile;
 }
 
+# wait until slapd accepts requests
+my $retries = 0;
+while (1) {
+  last if (system("ldapsearch -h $ldap_server -p $ldap_port -s base -b $ldap_basedn -n 'objectclass=*'") == 0);
+  die "cannot connect to slapd" if $retries++ >= 10;
+  note "waiting for slapd to accept requests...";
+  sleep(1);
+}
+
 append_to_file($ldap_pwfile, $ldap_rootpw);
 chmod 0600, $ldap_pwfile or die;
 
