diff --git a/public_html/deployment/classes/build_base.class.php b/public_html/deployment/classes/build_base.class.php
index 5f46ec4983c6fe4f844ef428f55ac0e2392e9d1a..bc9f3f000b92f59e2edde6d650f30bb3c88df9f0 100644
--- a/public_html/deployment/classes/build_base.class.php
+++ b/public_html/deployment/classes/build_base.class.php
@@ -108,7 +108,7 @@ class build_base implements iBuildplugin{
      * @return array
      */
     public function setOutfile($sOutFilename){
-        return $this->_sOutfile=$sOutFilename ? $sOutFilename.$this->getExtension() : $this->_sOutfile;
+        return $this->_sOutfile=$sOutFilename ? $sOutFilename : $this->_sOutfile;
     }
 
     // ---------------------------------------------------------------
@@ -184,15 +184,15 @@ class build_base implements iBuildplugin{
      */
     public function getExtension(){
         $aInfos=$this->getPluginInfos();
-        return isset($aInfos['extenmsion']) ? '.'.$aInfos['extenmsion'] : '';
+        return isset($aInfos['extension']) ? '.'.$aInfos['extension'] : '';
     }
     /**
-     * set outfile name
+     * set outfile name including extension (from plugin metadata)
      * @param  string  $sOutFilename  filename for output (without extension)
      * @return array
      */
     public function getOutfile(){
-        return $this->_sOutfile;
+        return $this->_sOutfile.$this->getExtension();
     }
     /**
      * set outfile name
diff --git a/public_html/deployment/classes/project.class.php b/public_html/deployment/classes/project.class.php
index 90b8f3bda41439a5cd17464f6c40546cf502f8e2..5e28c09bfd971d0e9f7c49d420775404db0dad22 100644
--- a/public_html/deployment/classes/project.class.php
+++ b/public_html/deployment/classes/project.class.php
@@ -438,14 +438,14 @@ class project extends base {
     }
 
     /**
-     * get filename for package file (.tgz file)
+     * get filename for package file (without file extension)
      * @param string $sPhase  one of preview|stage|live ...
      * @param string $sPlace  one of onhold|ready2install|deployed
      * @return string
      */
     private function _getPackagefile($sPhase, $sPlace) {
         $sBase = $this->_getFileBase($sPhase, $sPlace);
-        return $sBase ? $sBase . '/' . $this->_aPrjConfig["fileprefix"] . '.tgz' : false;
+        return $sBase ? $sBase . '/' . $this->_aPrjConfig["fileprefix"] : false;
     }
 
     /**
@@ -477,6 +477,7 @@ class project extends base {
                     $sIcon = 'file-template';
                     break;
                 case 'tgz':
+                case 'zip':
                     $sType = 'package';
                     $sIcon = 'file-archive';
                     break;
@@ -3523,7 +3524,7 @@ class project extends base {
                     ),
                 ),
             );
-            if (count($aForemanHostgroups)) {
+            if ($aForemanHostgroups && count($aForemanHostgroups)) {
                 foreach ($aForemanHostgroups as $aItem) {
                     $bActive=$iForemanHostgroupDefault === (int) $aItem['id'];
                     $aSelectForemanGroups['options'][$aItem['id']] = array(
@@ -3865,7 +3866,7 @@ class project extends base {
                         ),
                     ),
                 );
-                if (count($aForemanHostgroups)) {
+                if (is_array($aForemanHostgroups) && count($aForemanHostgroups)) {
                     foreach ($aForemanHostgroups as $aItem) {
                         $aSelectForemanHostGroup['options'][$aItem['id']] = array(
                             'label' => $aItem['title'],
diff --git a/public_html/deployment/plugins/build/zip/build_zip.php b/public_html/deployment/plugins/build/zip/build_zip.php
index 37e7066f208f1ac93e0e27fcc25d0503eb8dae63..2fadc359a115da1f020de2bb93ee7f625db53226 100644
--- a/public_html/deployment/plugins/build/zip/build_zip.php
+++ b/public_html/deployment/plugins/build/zip/build_zip.php
@@ -20,11 +20,15 @@ class build_zip extends build_base {
     
     /**
      * get an array with shell commands to execute
+     * used zip params:
+     *   -9   compress better
+     *   -q   quiet operation
+     *   -r   recurse into directories
      * @return array
      */
     public function getBuildCommands(){
         return [
-            'cd "'. $this->getBuildDir(). '" && zip -r9 "'. $this->getOutfile().'" .'
+            'cd "'. $this->getBuildDir(). '" && zip -9qr "'. $this->getOutfile().'" .'
         ];
     }