Index: /CKEditor/branches/prototype/_dev/packager/ckpackager/_dev/dump.bat
===================================================================
--- /CKEditor/branches/prototype/_dev/packager/ckpackager/_dev/dump.bat	(revision 2369)
+++ /CKEditor/branches/prototype/_dev/packager/ckpackager/_dev/dump.bat	(revision 2370)
@@ -7,2 +7,5 @@
 
 java -jar ../js.jar -opt -1 ../ckpackager.js -dump script.js
+
+:: To save the output to file
+:: java -jar ../js.jar -opt -1 ../ckpackager.js -dump script.js > dump.txt
Index: /CKEditor/branches/prototype/_dev/packager/ckpackager/includes/scriptcompressor.js
===================================================================
--- /CKEditor/branches/prototype/_dev/packager/ckpackager/includes/scriptcompressor.js	(revision 2369)
+++ /CKEditor/branches/prototype/_dev/packager/ckpackager/includes/scriptcompressor.js	(revision 2370)
@@ -85,11 +85,10 @@
 		{
 			var first = String( arguments[ 0 ] );
+			first = first.substr( 0, 1 );
 
 			if (
-				( first == '++' && out.last == '+' ) ||
-				( first == '--' && out.last == '-' ) ||
-				( out.last == '++' && first == '+' ) ||
-				( out.last == '--' && first == '-' ) ||
-				( out.mayNeedSpace && !noSpaceChars[ first.substr( 0, 1 ) ] ) )
+				( first == '+' && out.last == '+' ) ||
+				( first == '-' && out.last == '-' ) ||
+				( out.mayNeedSpace && !noSpaceChars[ first ] && !noSpaceChars[ out.last ] ) )
 			{
 				output.push( ' ' );
@@ -98,6 +97,7 @@
 		}
 
-		var last = out.last = String( arguments[ arguments.length - 1 ] );
-		out.mayNeedSpace = ( last == '++' || last == '--' || !noSpaceChars[ last.substr( last.length - 1 ) ] );
+		var last = String( arguments[ arguments.length - 1 ] );
+		last = out.last = last.substr( last.length - 1 );
+		out.mayNeedSpace = ( last == '+' || last == '-' || !noSpaceChars[ last ] );
 
 		for ( var i = 0 ; i < arguments.length ; i++ )
@@ -484,13 +484,9 @@
 
 						if ( expression.getFirstChild().getType() != Token.TRUE )
-							writeNode( expression );
+							writeNode( expression, { noSemiColon : true } );
 
 						out( ';' );
 
-						writeNode( incrementExpression );
-
-						// Removes the ";" sent by EXPR_VOID.
-						output.pop();
-						outputSize--;
+						writeNode( incrementExpression, { noSemiColon : true } );
 
 						out( ')' );
@@ -545,5 +541,5 @@
 					{
 						out( ';' );
-						writeNode( child.target.getNext() );
+						writeNode( child.target.getNext(), { noSemiColon : true } );
 						out( ';' );
 
@@ -555,9 +551,5 @@
 						if ( incrementExpression.getType() == Token.EXPR_VOID )
 						{
-							writeNode( incrementExpression );
-
-							// Removes the ";" sent by EXPR_VOID.
-							output.pop();
-							outputSize--;
+							writeNode( incrementExpression, { noSemiColon : true } );
 						}
 					}
Index: /CKEditor/branches/prototype/_dev/packager/ckpackager/test/test.js
===================================================================
--- /CKEditor/branches/prototype/_dev/packager/ckpackager/test/test.js	(revision 2369)
+++ /CKEditor/branches/prototype/_dev/packager/ckpackager/test/test.js	(revision 2370)
@@ -249,5 +249,8 @@
 		[	"o={'\\b':'\\\\b','\\t':'\\\\t','\\n':'\\\\n','\\f':'\\\\f','\\r':'\\\\r','\"':'\\\\\"','\\\\':'\\\\\\\\'};" ],
 
-		[	"if(a){}else{}" ]
+		[	"if(a){}else{}" ],
+		
+		[	"a=b+c*1;",
+			"a=b+ +c;" ]
 	];
 
