diff --git a/beat/core/execution/base.py b/beat/core/execution/base.py
index a8610f5b847cda7477de501dc1aae8deb3adbc4d..b5cbe56f4eeae3021f05ca790ce03a00ea00a759 100755
--- a/beat/core/execution/base.py
+++ b/beat/core/execution/base.py
@@ -187,16 +187,17 @@ class BaseExecutor(object):
     if len(self.data['inputs']) != len(self.algorithm.input_map):
       self.errors.append("The number of inputs of the algorithm doesn't correspond")
 
-    if len(self.data['outputs']) != len(self.algorithm.output_map):
+    if self.data.has_key('outputs') and (len(self.data['outputs']) != len(self.algorithm.output_map)):
       self.errors.append("The number of outputs of the algorithm doesn't correspond")
 
     for name in self.data['inputs'].keys():
       if name not in self.algorithm.input_map.keys():
         self.errors.append("The input '%s' doesn't exist in the algorithm" % name)
 
-    for name in self.data['outputs'].keys():
-      if name not in self.algorithm.output_map.keys():
-        self.errors.append("The output '%s' doesn't exist in the algorithm" % name)
+    if self.data.has_key('outputs'):
+        for name in self.data['outputs'].keys():
+          if name not in self.algorithm.output_map.keys():
+            self.errors.append("The output '%s' doesn't exist in the algorithm" % name)
 
     if self.errors:
       return