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