diff --git a/modules/ldapstatus/lib/Tester.php b/modules/ldapstatus/lib/Tester.php
index 85f568f85524886e19c8eebcbaaf5fc07f8b6f62..5096c233a6fa5124aeccdd8d9f0f98cbd19615e7 100644
--- a/modules/ldapstatus/lib/Tester.php
+++ b/modules/ldapstatus/lib/Tester.php
@@ -96,14 +96,25 @@ class sspmod_ldapstatus_Tester {
 			return array(FALSE, 'No IP address found for host ' . $host . '.');
 		}
 
-		$timeout = 1.0;
-		$socket = @fsockopen($host, $port, $errno, $errstr, $timeout);
-		if ($socket) @fclose($socket);
-		if ($errno) {
-			return array(FALSE, $errno . ':' . $errstr . ' [' . $host . ':' . $port . ']');
-		} else {		
-			return array(TRUE,'');
+		$errors = array();
+		foreach ($ips as $ip) {
+			$timeout = 1.0;
+			$socket = @fsockopen($ip, $port, $errno, $errstr, $timeout);
+			if ($errno) {
+				$errors[] = $errno . ':' . $errstr . ' (' . $host . '[' . $ip . ']:' . $port . ')';
+			} elseif ($socket === FALSE) {
+				$errors[] = '[Unknown error, check log] (' . $host . '[' . $ip . ']:' . $port . ')';
+			} else {
+				@fclose($socket);
+			}
+		}
+
+		if (count($errors) === 0) {
+			return array(TRUE, count($ips) . ' LDAP servers working.');
 		}
+
+		$error = count($errors) . ' of ' . count($ips) . ' failed: '. implode(';', $errors);
+		return array(FALSE, $error);
 	}