diff --git a/Source/Core/Properties/AssemblyInfo.cs b/Source/Core/Properties/AssemblyInfo.cs
index 714454442e7d5fd91d378863e1f2f03c27b06b60..0876e49b67761369630665bd0b82694cae7a0ad2 100755
--- a/Source/Core/Properties/AssemblyInfo.cs
+++ b/Source/Core/Properties/AssemblyInfo.cs
@@ -30,6 +30,6 @@ using CodeImp.DoomBuilder;
 //      Build Number
 //      Revision
 //
-[assembly: AssemblyVersion("2.3.0.2833")]
+[assembly: AssemblyVersion("2.3.0.2834")]
 [assembly: NeutralResourcesLanguageAttribute("en")]
-[assembly: AssemblyHash("a1dc4bb")]
+[assembly: AssemblyHash("87fdd67")]
diff --git a/Source/Core/ZDoom/DecorateStateStructure.cs b/Source/Core/ZDoom/DecorateStateStructure.cs
index ac6e81903f973f2d1daa7e8815735ba58e411746..57dcd6924f956219f3f17f6e24f6e88d89556f31 100755
--- a/Source/Core/ZDoom/DecorateStateStructure.cs
+++ b/Source/Core/ZDoom/DecorateStateStructure.cs
@@ -45,7 +45,7 @@ namespace CodeImp.DoomBuilder.ZDoom
                         parser.DataStream.Seek(-(lasttoken.Length + 1), SeekOrigin.Current);
 
                     // Done here
-                    return;
+                    goto endofallthings;
                 }
                 //mxd. Start of inner scope?
                 else if (token == "{")
@@ -69,7 +69,7 @@ namespace CodeImp.DoomBuilder.ZDoom
                     parser.DataStream.Seek(-1, SeekOrigin.Current);
 
                     // Done here
-                    return;
+                    goto endofallthings;
                 }
                 else
                 {
@@ -97,7 +97,7 @@ namespace CodeImp.DoomBuilder.ZDoom
                         parser.DataStream.Seek(-(token.Length + 1), SeekOrigin.Current);
 
                         // Done here
-                        return;
+                        goto endofallthings;
                     }
 
                     // No first sprite yet?
@@ -158,7 +158,11 @@ namespace CodeImp.DoomBuilder.ZDoom
                                 return;
                             }
 
-                            if (!parser.NextTokenIs(")")) return;
+                            if (!parser.NextTokenIs(")"))
+                            {
+                                parser.ReportError("Expected closing parenthesis in Light()");
+                                return;
+                            }
                         }
                         //mxd. Inner scope start. Step back and reparse using parent loop
                         else if (t == "{")
@@ -191,7 +195,7 @@ namespace CodeImp.DoomBuilder.ZDoom
                             parser.DataStream.Seek(-1, SeekOrigin.Current);
 
                             // Done here
-                            return;
+                            goto endofallthings;
                         }
 
                         // Read next token
@@ -202,6 +206,11 @@ namespace CodeImp.DoomBuilder.ZDoom
 
                 lasttoken = token;
             }
+
+            // return
+        endofallthings:
+
+            TrimLeft();
         }
 
         #endregion
diff --git a/Source/Core/ZDoom/StateStructure.cs b/Source/Core/ZDoom/StateStructure.cs
index 60d011525308a752c53fc59b64b9afda3b7023e1..dd4a3e799965240cb3d931c7b6b98d12b63e879d 100755
--- a/Source/Core/ZDoom/StateStructure.cs
+++ b/Source/Core/ZDoom/StateStructure.cs
@@ -70,6 +70,24 @@ namespace CodeImp.DoomBuilder.ZDoom
 		#endregion
 
 		#region ================== Methods
+
+        // This removes useless images from the start of the state (TNT1)
+        protected void TrimLeft() // :)
+        {
+            // postprocess: if there are only TNT1 sprites, do nothing. however, if there were normal sprites as well, use these.
+            int firstNonEmpty = -1;
+            for (int i = 0; i < sprites.Count; i++)
+            {
+                if (!sprites[i].Sprite.StartsWith("TNT1"))
+                {
+                    firstNonEmpty = i;
+                    break;
+                }
+            }
+
+            if (firstNonEmpty > 0)
+                sprites.RemoveRange(0, firstNonEmpty);
+        }
 		
 		// This finds the first valid sprite and returns it
 		public FrameInfo GetSprite(int index)
diff --git a/Source/Core/ZDoom/ZScriptActorStructure.cs b/Source/Core/ZDoom/ZScriptActorStructure.cs
index 36919d4ba2587b1ceeb9a95b913179ba59a19ab2..1ef7d22e41620ef4317a5ec04343082898f092fb 100755
--- a/Source/Core/ZDoom/ZScriptActorStructure.cs
+++ b/Source/Core/ZDoom/ZScriptActorStructure.cs
@@ -118,7 +118,15 @@ namespace CodeImp.DoomBuilder.ZDoom
 
                             //parser.LogWarning(string.Format("{0} = [{1}]", propertyname, string.Join(", ", propertyvalues.ToArray())));
                             // set property
-                            props[propertyname] = propertyvalues;
+                            // translate "scale" to x and y scale
+                            if (propertyname == "scale")
+                            {
+                                props["xscale"] = props["yscale"] = propertyvalues;
+                            }
+                            else
+                            {
+                                props[propertyname] = propertyvalues;
+                            }
                             break;
                         }
                 }
diff --git a/Source/Core/ZDoom/ZScriptStateStructure.cs b/Source/Core/ZDoom/ZScriptStateStructure.cs
index 35f85ceb11d8eb8b6b41ec3a822f48f4f4cd17aa..326ca5c0886c9e36daaec428d83df2c22dd7f6ce 100755
--- a/Source/Core/ZDoom/ZScriptStateStructure.cs
+++ b/Source/Core/ZDoom/ZScriptStateStructure.cs
@@ -82,7 +82,7 @@ namespace CodeImp.DoomBuilder.ZDoom
                 if (token.Type == ZScriptTokenType.CloseCurly)
                 {
                     stream.Position--;
-                    return; // done
+                    break; // done
                 }
                 else if (token.Type == ZScriptTokenType.Identifier)
                 {
@@ -299,6 +299,8 @@ namespace CodeImp.DoomBuilder.ZDoom
                     } // if identifier
                 } // frame parsing loop (inner)
             } // state parsing loop (outer)
+
+            TrimLeft();
         }
     }
 }
diff --git a/Source/Plugins/BuilderModes/Properties/AssemblyInfo.cs b/Source/Plugins/BuilderModes/Properties/AssemblyInfo.cs
index fc4d207aa910acc9a96ab2346470de3c405ffc0b..cf9140bceb4e014b11af4e52dd05bd35b45ac64e 100755
--- a/Source/Plugins/BuilderModes/Properties/AssemblyInfo.cs
+++ b/Source/Plugins/BuilderModes/Properties/AssemblyInfo.cs
@@ -29,5 +29,5 @@ using System.Resources;
 //      Build Number
 //      Revision
 //
-[assembly: AssemblyVersion("2.3.0.2833")]
+[assembly: AssemblyVersion("2.3.0.2834")]
 [assembly: NeutralResourcesLanguageAttribute("en")]