diff --git a/creole/cfgparser.py b/creole/cfgparser.py
index c6cef4c..c3cc098 100644
--- a/creole/cfgparser.py
+++ b/creole/cfgparser.py
@@ -1000,39 +1000,41 @@ broadcast %%{3}
                 raise Exception('Le conteneur %s n\'existe pas'%container)
             tcontainer = {}
             tcontainer[container] = self.containers[container]
-        need_update = {}
-        #cvar = load_container_var()
-        for name, value in tcontainer.items():
-            if not need_update.has_key(name):
-                need_update[name] = True
-            if config.VIRTDISABLED == False and name != config.VIRTMASTER:
+
+        if not config.VIRTDISABLED:
+            # mode conteneur => gestion par conteneur
+            for name, value in tcontainer.items():
+                missing_pkg = []
                 for package in value['packages']:
-                    #chroot = cvar['container_path_%s'%name]
                     if not is_installed(package, container=name, context=context):
-                        if need_update[name] == True:
-                            cmd = ['/usr/bin/apt-eole', 'update-conteneur', name]
-                            if system_out(cmd)[0] != 0:
-                                raise Exception("Erreur d'exécution de %s" % ' '.join(cmd))
-                            need_update[name] = False
-                        self.log.info(install_msg % (package, name))
-                        print_cyan(install_msg % (package, name))
-                        cmd = ['/usr/bin/apt-eole', 'install-conteneur', name, package]
-                        if system_code(cmd) != 0:
-                            raise Exception("Erreur d'exécution de %s" % ' '.join(cmd))
-            else:
+                        missing_pkg.append(package)
+                if missing_pkg != []:
+                    cmd = ['/usr/bin/apt-eole', 'update-conteneur', name]
+                    if system_out(cmd)[0] != 0:
+                        raise Exception("Erreur d'exécution de %s" % ' '.join(cmd))
+                    packages = ' '.join(missing_pkg)
+                    self.log.info(install_msg % (packages, name))
+                    print_cyan(install_msg % (packages, name))
+                    cmd = ['/usr/bin/apt-eole', 'install-conteneur', name, packages]
+                    if system_code(cmd) != 0:
+                        raise Exception("Erreur d'exécution de %s" % ' '.join(cmd))
+        else:
+            # mode non conteneur => gestion globale
+            missing_pkg = []
+            for name, value in tcontainer.items():
                 for package in value['packages']:
-                    #update
                     if not is_installed(package):
-                        if need_update[name] == True:
-                            cmd = ['/usr/bin/apt-get', 'update']
-                            if system_out(cmd)[0] != 0:
-                                raise Exception("Erreur d'exécution de %s" % ' '.join(cmd))
-                            need_update[name] = False
-                        self.log.info(install_msg % (package, name))
-                        print_cyan(install_msg % (package, name))
-                        cmd = ['/usr/bin/apt-eole', 'install', package]
-                        if system_code(cmd) != 0:
-                            raise Exception("Erreur d'exécution de %s" % ' '.join(cmd))
+                        missing_pkg.append(package)
+            if missing_pkg != []:
+                cmd = ['/usr/bin/apt-get', 'update']
+                if system_out(cmd)[0] != 0:
+                    raise Exception("Erreur d'exécution de %s" % ' '.join(cmd))
+                packages = ' '.join(missing_pkg)
+                self.log.info(install_msg % (packages, config.VIRTMASTER))
+                print_cyan(install_msg % (packages, config.VIRTMASTER))
+                cmd = ['/usr/bin/apt-eole', 'install', package]
+                if system_code(cmd) != 0:
+                    raise Exception("Erreur d'exécution de %s" % ' '.join(cmd))
 
     def lxc_postinstall(self, container=None):
         if config.VIRTDISABLED == True:
