diff --git a/pandora_agents/unix/ChangeLog b/pandora_agents/unix/ChangeLog
index 486547f1dc..c810e6632e 100644
--- a/pandora_agents/unix/ChangeLog
+++ b/pandora_agents/unix/ChangeLog
@@ -1,3 +1,8 @@
+2011-12-19  Ramon Novoa  <rnovoa@artica.es>
+
+	* pandora_agent: Wait for broker childs instead of ignoring
+	  SIGCHLD.
+
 2011-12-19  Ramon Novoa  <rnovoa@artica.es>
 
 	* pandora_agent: Ignore SIGCHLD.
diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent
index 16c9914cb9..5e15d0b1a7 100755
--- a/pandora_agents/unix/pandora_agent
+++ b/pandora_agents/unix/pandora_agent
@@ -114,7 +114,7 @@ my $ConfDir = '';
 my $ConfFile = 'pandora_agent.conf';
 
 # Broker agent configuration files
-my @BrokerConfFiles;
+my @BrokerPid;
 
 # Configuration tokens
 my %Conf = (
@@ -1589,9 +1589,6 @@ sub kill_signal_handler (){
 #Handler TERM signal.
 $SIG{'TERM'} = \&kill_signal_handler;
 
-# Ignore SIGCHLD
-$SIG{'CHLD'} = 'IGNORE';
-
 # Check command line arguments
 print_usage unless ($#ARGV == 0);
 $ConfDir = fix_directory ($ARGV[0]);
@@ -1719,6 +1716,8 @@ while (1) {
 					
 			# Execute
 			last;
+		} else {
+			push (@BrokerPid, $main_agent);
 		}
 	}
 
@@ -1851,6 +1850,9 @@ while (1) {
 
 	# Sleep if main agent
 	if ($main_agent != 0) {
+		foreach my $broker_pid (@BrokerPid) {
+			waitpid ($broker_pid, 0);
+		}
 		sleep ($Conf{'interval'});
 	}
 	# Finish if broker agent