diff --git a/README.md b/README.md
index 4a16dbd..363adc4 100644
--- a/README.md
+++ b/README.md
@@ -20,6 +20,7 @@
 - time remapped stretched layers fix
 - shapes with no vertices fix
 - more stroke effect types support
+- luminance mask fix
 
 
 ## V 4.4.23
diff --git a/player/js/elements/ImageElement.js b/player/js/elements/ImageElement.js
index 2a0d53a..df830fe 100644
--- a/player/js/elements/ImageElement.js
+++ b/player/js/elements/ImageElement.js
@@ -18,10 +18,10 @@
     this.maskedElement = this.innerElem;
     this.layerElement.appendChild(this.innerElem);
     if(this.data.ln){
-        this.innerElem.setAttribute('id',this.data.ln);
+        this.layerElement.setAttribute('id',this.data.ln);
     }
     if(this.data.cl){
-        this.innerElem.setAttribute('class',this.data.cl);
+        this.layerElement.setAttribute('class',this.data.cl);
     }
 
 };
diff --git a/player/js/elements/SolidElement.js b/player/js/elements/SolidElement.js
index 08ba4bf..40e335b 100644
--- a/player/js/elements/SolidElement.js
+++ b/player/js/elements/SolidElement.js
@@ -16,10 +16,10 @@
     this.layerElement.appendChild(rect);
     this.innerElem = rect;
     if(this.data.ln){
-        this.innerElem.setAttribute('id',this.data.ln);
+        this.layerElement.setAttribute('id',this.data.ln);
     }
     if(this.data.cl){
-        this.innerElem.setAttribute('class',this.data.cl);
+        this.layerElement.setAttribute('class',this.data.cl);
     }
 };
 
diff --git a/player/js/elements/svgElements/SVGBaseElement.js b/player/js/elements/svgElements/SVGBaseElement.js
index e7ab617..72573c1 100644
--- a/player/js/elements/svgElements/SVGBaseElement.js
+++ b/player/js/elements/svgElements/SVGBaseElement.js
@@ -13,11 +13,13 @@
 
 SVGBaseElement.prototype.createElements = function(){
     if(this.data.td){
-        if(this.data.td == 3){
-            this.layerElement = document.createElementNS(svgNS,'mask');
-            this.layerElement.setAttribute('id',this.layerId);
-            this.layerElement.setAttribute('mask-type','luminance');
-            this.globalData.defs.appendChild(this.layerElement);
+        if(this.data.td == 3 || this.data.td == 1){
+            this.layerElement = document.createElementNS(svgNS,'g');
+            var masker = document.createElementNS(svgNS,'mask');
+            masker.setAttribute('id',this.layerId);
+            masker.setAttribute('mask-type',this.data.td == 3 ? 'luminance':'alpha');
+            masker.appendChild(this.layerElement);
+            this.globalData.defs.appendChild(masker);
         }else if(this.data.td == 2){
             var maskGroup = document.createElementNS(svgNS,'mask');
             maskGroup.setAttribute('id',this.layerId);
@@ -54,11 +56,6 @@
             this.globalData.defs.appendChild(maskGroup);
         }else{
             this.layerElement = document.createElementNS(svgNS,'g');
-            var masker = document.createElementNS(svgNS,'mask');
-            masker.setAttribute('id',this.layerId);
-            masker.setAttribute('mask-type','alpha');
-            masker.appendChild(this.layerElement);
-            this.globalData.defs.appendChild(masker);
         }
         if(this.data.hasMask){
             this.maskedElement = this.layerElement;
