Index: /CKPackager/trunk/_source/includes/scriptcompressor.js
===================================================================
--- /CKPackager/trunk/_source/includes/scriptcompressor.js	(revision 3318)
+++ /CKPackager/trunk/_source/includes/scriptcompressor.js	(revision 3319)
@@ -783,5 +783,28 @@
 					hasCurly = true;
 
-				hasCurly = ( !block || ( block.getType() == Token.BLOCK && ( !block.getFirstChild() || block.getFirstChild().getNext() ) ) );
+				hasCurly = 
+					( 
+						!block 
+						|| 
+						( 
+							block.getType() == Token.BLOCK 
+							&& 
+							( 
+								!block.getFirstChild() 
+								|| 
+								block.getFirstChild().getNext() 
+								||
+								(
+									(
+										block.getFirstChild().getType() == Token.BLOCK 
+										||
+										block.getFirstChild().getType() == Token.IFNE
+									)
+									&&
+									block.getNext().getType() == Token.GOTO
+								)
+							) 
+						) 
+					);
 
 				if ( hasCurly )
Index: /CKPackager/trunk/test/test.js
===================================================================
--- /CKPackager/trunk/test/test.js	(revision 3318)
+++ /CKPackager/trunk/test/test.js	(revision 3319)
@@ -264,5 +264,8 @@
 			"x=a+b+c;" ],
 
-		[	"x=a&&b&&c;" ]
+		[	"x=a&&b&&c;" ],
+
+		[	"if(a){if(B)doB();}else if(c)doC();" ],
+
 	];
 
