diff --git a/pandora_console/ChangeLog b/pandora_console/ChangeLog
index 2120a7e519..ebdd461d59 100644
--- a/pandora_console/ChangeLog
+++ b/pandora_console/ChangeLog
@@ -1,3 +1,16 @@
+2010-07-21  Miguel de Dios  <miguel.dedios@artica.es>
+
+	* include/functions_html.php: lost in previus commit the change to
+	"print_select_groups" the new parameter $id_group, to don't show the group
+	with id and children of this group.
+	
+	* include/functions_db.php: in function "format_array_to_where_clause_sql"
+	added to order as array several fields.
+	
+	* operation/agentes/estado_ultimopaquete.php: added the icons and source
+	code for order rows of list alerts by columns Module Name, Type, Interval
+	and Timestamp.
+
 2010-07-21  Miguel de Dios  <miguel.dedios@artica.es>
 
 	* godmode/groups/configure_group.php: fixed to negate the posibility to hang
diff --git a/pandora_console/include/functions_db.php b/pandora_console/include/functions_db.php
index d6d3de1a30..e0876d87cf 100644
--- a/pandora_console/include/functions_db.php
+++ b/pandora_console/include/functions_db.php
@@ -2512,7 +2512,16 @@ function format_array_to_where_clause_sql ($values, $join = 'AND', $prefix = fal
 	
 	if (isset ($values['order'])) {
 		if (is_array($values['order'])) {
+			if (!isset($values['order']['order'])) {
+				$orderTexts = array();
+				foreach ($values['order'] as $orderItem) {	
+					$orderTexts[] = $orderItem['field'] . ' ' . $orderItem['order'];
+				}
+				$order = ' ORDER BY ' . implode(', ', $orderTexts);
+			}
+			else {
 				$order = sprintf (' ORDER BY %s %s', $values['order']['field'], $values['order']['order']);
+			}
 		}
 		else {
 			$order = sprintf (' ORDER BY %s', $values['order']);
diff --git a/pandora_console/include/functions_html.php b/pandora_console/include/functions_html.php
index 6ab5663a9f..cd61e26e7c 100644
--- a/pandora_console/include/functions_html.php
+++ b/pandora_console/include/functions_html.php
@@ -157,14 +157,23 @@ function print_select_style ($fields, $name, $selected = '', $style='', $script
  * @param bool Set the input to allow multiple selections (optional, single selection by default).
  * @param bool Whether to sort the options or not (optional, unsorted by default).
  * @param string $style The string of style.
+ * @param integer $id_group The id of node that must do not show the children and own.
  *
  * @return string HTML code if return parameter is true.
  */
 function print_select_groups($id_user = false, $privilege = "AR", $returnAllGroup = true,
 	$name, $selected = '', $script = '', $nothing = '', $nothing_value = 0, $return = false, 
-	$multiple = false, $sort = true, $class = '', $disabled = false, $style = false, $option_style = false) {
+	$multiple = false, $sort = true, $class = '', $disabled = false, $style = false, $option_style = false, $id_group = false) {
 		
-	$user_groups = get_user_groups ($id_user, $privilege, $returnAllGroup, true);	
+	$user_groups = get_user_groups ($id_user, $privilege, $returnAllGroup, true);
+	
+	if ($id_group !== false) {
+		$childrens = get_childrens($id_group);
+		foreach ($childrens as $child) {
+			unset($user_groups[$child['id_grupo']]);
+		}
+		unset($user_groups[$id_group]);
+	}
 	
 	$user_groups_tree = get_user_groups_tree_recursive($user_groups);
 	
diff --git a/pandora_console/operation/agentes/estado_ultimopaquete.php b/pandora_console/operation/agentes/estado_ultimopaquete.php
index b80bde320b..9b112733d0 100644
--- a/pandora_console/operation/agentes/estado_ultimopaquete.php
+++ b/pandora_console/operation/agentes/estado_ultimopaquete.php
@@ -47,12 +47,89 @@ echo "<h3>".__('Display of last data modules received by agent');
 echo "&nbsp;<a href='index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente=$id_agente&tab=data'><img src='images/refresh.png'></A>";
 echo "</h3>";
 
+$sortField = get_parameter('sort_field');
+$sort = get_parameter('sort', 'none');
+$selected = 'border: 1px solid black;';
+$url = 'index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=data&id_agente=' . $id_agente;
+$selectNameUp = '';
+$selectNameDown = '';
+$selectTypeUp = '';
+$selectTypeDown = '';
+$selectIntervalUp = '';
+$selectIntervalDown = '';
+$selectTimestampUp = '';
+$selectTimestampDown = '';
+
+$order[] = array('field' => 'id_module_group', 'order' => 'ASC');
+
+switch ($sortField) {
+	case 'name':
+		switch ($sort) {
+			case 'up':
+				$selectNameUp = $selected;
+				$order[] = array('field' => 'tagente_modulo.nombre', 'order' => 'ASC');
+				break;
+			case 'down':
+				$selectNameDown = $selected;
+				$order[] = array('field' => 'tagente_modulo.nombre', 'order' => 'DESC');
+				break;
+		}
+		break;
+	case 'type':
+		switch ($sort) {
+			case 'up':
+				$selectTypeUp = $selected;
+				$order[] = array('field' => 'tagente_modulo.id_tipo_modulo', 'order' => 'ASC');
+				break;
+			case 'down':
+				$selectTypeDown = $selected;
+				$order[] = array('field' => 'tagente_modulo.id_tipo_modulo', 'order' => 'DESC');
+				break;
+		}
+		break;
+	case 'interval':
+		switch ($sort) {
+			case 'up':
+				$selectIntervalUp = $selected;
+				$order[] = array('field' => 'tagente_modulo.module_interval', 'order' => 'ASC');
+				break;
+			case 'down':
+				$selectIntervalDown = $selected;
+				$order[] = array('field' => 'tagente_modulo.module_interval', 'order' => 'DESC');
+				break;
+		}
+		break;
+	case 'timestamp':
+		switch ($sort) {
+			case 'up':
+				$selectTimestampUp = $selected;
+				$order[] = array('field' => 'tagente_estado.utimestamp', 'order' => 'ASC');
+				break;
+			case 'down':
+				$selectTimestampDown = $selected;
+				$order[] = array('field' => 'tagente_estado.utimestamp', 'order' => 'DESC');
+				break;
+		}
+		break;
+	default:
+		$selectNameUp = $selected;
+		$selectNameDown = '';
+		$selectTypeUp = '';
+		$selectTypeDown = '';
+		$selectIntervalUp = '';
+		$selectIntervalDown = '';
+		$selectTimestampUp = '';
+		$selectTimestampDown = '';
+		$order[] = array('field' => 'tagente_modulo.nombre', 'order' => 'ASC');
+		break;
+}
+
 $modules = get_db_all_rows_filter ('tagente_modulo, tagente_estado',
 	array ('tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo',
 		'disabled' => 0,
 		'tagente_estado.utimestamp != 0',
 		'tagente_modulo.id_agente = '.$id_agente,
-		'order' => 'id_module_group, nombre'));
+		'order' => $order));
 
 if ($modules === false) {
 	echo "<div class='nf'>".__('This agent doesn\'t have any module')."</div>";
@@ -61,14 +138,26 @@ if ($modules === false) {
 
 echo "<table width='95%' cellpadding='3' cellspacing='3' class='databox'>";
 echo "<th></th>";
-echo "<th>".__('Module name')."</th>";
-echo "<th>".__('Type')."</th>";
-echo "<th>".__('int')."</th>";
-echo "<th>".__('Description')."</th>";
-echo "<th>".__('Data')."</th>";
+echo "<th>".__('Module name') . ' ' .
+			'<a href="' . $url . '&sort_field=name&sort=up"><img src="images/sort_up.png" style="' . $selectNameUp . '" /></a>' .
+			'<a href="' . $url . '&sort_field=name&sort=down"><img src="images/sort_down.png" style="' . $selectNameDown . '" /></a>';
+echo "</th>";
+echo "<th>".__('Type') . ' ' .
+			'<a href="' . $url . '&sort_field=type&sort=up"><img src="images/sort_up.png" style="' . $selectTypeUp . '" /></a>' .
+			'<a href="' . $url . '&sort_field=type&sort=down"><img src="images/sort_down.png" style="' . $selectTypeDown . '" /></a>';
+echo "</th>";
+echo "<th>".__('int') . ' ' .
+			'<a href="' . $url . '&sort_field=interval&sort=up"><img src="images/sort_up.png" style="' . $selectIntervalUp . '" /></a>' .
+			'<a href="' . $url . '&sort_field=interval&sort=down"><img src="images/sort_down.png" style="' . $selectIntervalDown . '" /></a>';
+echo "</th>";
+echo "<th>".__('Description') . "</th>";
+echo "<th>".__('Data') . "</th>";
 echo "<th>".__('Graph')."</th>";
 echo "<th>".__('Raw Data')."</th>";
-echo "<th>".__('Timestamp')."</th>";
+echo "<th>".__('Timestamp') . ' ' .
+	'<a href="' . $url . '&sort_field=timestamp&sort=up"><img src="images/sort_up.png" style="' . $selectTimestampUp . '" /></a>' .
+	'<a href="' . $url . '&sort_field=timestamp&sort=down"><img src="images/sort_down.png" style="' . $selectTimestampDown . '" /></a>';
+echo "</th>";
 $texto=''; $last_modulegroup = 0;
 $color = 1;
 $write = give_acl ($config['id_user'], $agent['id_grupo'], "AW");