Index: /CKPackager/trunk/_source/includes/scriptcompressor.js
===================================================================
--- /CKPackager/trunk/_source/includes/scriptcompressor.js	(revision 4648)
+++ /CKPackager/trunk/_source/includes/scriptcompressor.js	(revision 4649)
@@ -628,4 +628,16 @@
 				var hasCurly = ( !block || !block.getFirstChild() || !!block.getFirstChild().getNext() );
 
+				// Avoid single enclosed 'if...elseif' block combines with any 'else/elseif'
+				// statement following the loop. (#4695)
+				// E.g. if()for(){if()elseif()}else AND ..elseif()for(){if()}else
+				if( !hasCurly )
+				{
+					try
+					{
+						block.getFirstChild().getFirstChild().getType() == Token.IFNE && ( hasCurly = 1 );
+					}
+					catch( er ){}
+				}
+
 				if ( hasCurly )
 					out( '{' );
Index: /CKPackager/trunk/test/test.js
===================================================================
--- /CKPackager/trunk/test/test.js	(revision 4648)
+++ /CKPackager/trunk/test/test.js	(revision 4649)
@@ -289,5 +289,9 @@
 			"var a=b?c:d;" ],
 
-		[	"var a=(b=c)?d:e;" ]
+		[	"var a=(b=c)?d:e;" ],
+				
+		[	"if(a){for(;;){if(B){doB();}}}else{doC();}",
+			"if(a)for(;;){if(B)doB();}else doC();"
+		]
 	];
 
