Index: trunk/plugins/Installation/Controller.php
===================================================================
--- trunk/plugins/Installation/Controller.php	(revision 1142)
+++ trunk/plugins/Installation/Controller.php	(working copy)
@@ -84,9 +84,7 @@
 		
 		$view->showNextStep = !$view->problemWithSomeDirectories 
 							&& $view->infos['phpVersion_ok']
-							&& $view->infos['pdo_ok']
-							&& $view->infos['pdo_mysql_ok']
-
+							&& !count($view->infos['missing_extensions'])
 						;
 		$_SESSION['currentStepDone'] = __FUNCTION__;		
 
@@ -472,46 +470,33 @@
 		$infos['phpVersion_ok'] = version_compare( $minimumPhpVersion, $infos['phpVersion']) === -1;
 		
 		$extensions = @get_loaded_extensions();
+		$needed_extensions = array('gd', 'PDO', 'pdo_mysql', 'zlib');
+   $missing_extensions = array();
+		foreach($needed_extensions as $needed_extension) {
+		  if (!in_array($needed_extension, $extensions)) {
+		    $info['missing_extensions'][] = $needed_extension;
+		  }
+		}
 		
-		$infos['pdo_ok'] = false;
-		if (in_array('PDO', $extensions))  
-		{
-		    $infos['pdo_ok'] = true;
+		$needed_functions = array('set_time_limit', 'mail');
+		$missing_funtions = array();
+		foreach($needed_functions as $needed_function) {
+		  if (!function_exists($needed_function)) {
+		    $infos['missing_functions'][] = $needed_function;
+		  }
 		}
-				
-		$infos['pdo_mysql_ok'] = false;
-		if (in_array('pdo_mysql', $extensions))  
-		{
-		    $infos['pdo_mysql_ok'] = true;
-		}
 		
-		$infos['gd_ok'] = false;
-		if (in_array('gd', $extensions)) 
+		$gdInfo = gd_info();
+		$infos['gd_version'] = $gdInfo['GD Version'];
+		ereg ("([0-9]{1})", $gdInfo['GD Version'], $gdVersion);
+		if($gdVersion[0] >= 2) 
 		{
-		    $gdInfo = gd_info();
-			$infos['gd_version'] = $gdInfo['GD Version'];
-		    ereg ("([0-9]{1})", $gdInfo['GD Version'], $gdVersion);
-		    if($gdVersion[0] >= 2) 
-		    {
-				$infos['gd_ok'] = true;
-		    }
+				$infos['missing_extensions'][] = 'gd';
 		}
-			
+					
 		$infos['serverVersion'] = addslashes($_SERVER['SERVER_SOFTWARE']);
 		$infos['serverOs'] = @php_uname();
 		$infos['serverTime'] = date('H:i:s');
-
-		$infos['setTimeLimit_ok'] = false;
-		if(function_exists( 'set_time_limit'))
-		{
-			$infos['setTimeLimit_ok'] = true;
-		}
-
-		$infos['mail_ok'] = false;
-		if(function_exists('mail'))
-		{
-			$infos['mail_ok'] = true;
-		}
 		
 		$infos['registerGlobals_ok'] = ini_get('register_globals') == 0;
 		$infos['memoryMinimum'] = $minimumMemoryLimit;
