Index: /CKPackager/trunk/_source/includes/scriptcompressor.js
===================================================================
--- /CKPackager/trunk/_source/includes/scriptcompressor.js	(revision 6423)
+++ /CKPackager/trunk/_source/includes/scriptcompressor.js	(revision 6424)
@@ -690,5 +690,8 @@
 					out( 'while(' );
 					writeNode( block.getNext().getNext() );
-					out( ')' );
+
+					// IE9 insist on a semicolon after do...while,
+					// when the loop is not the last statement. (#7157)
+					out( ')' + ( node.getNext() ? ';' :'' ) );
 				}
 
Index: /CKPackager/trunk/test/test.js
===================================================================
--- /CKPackager/trunk/test/test.js	(revision 6423)
+++ /CKPackager/trunk/test/test.js	(revision 6424)
@@ -316,5 +316,9 @@
 		[	"var A={foo:function C(){}};", "var a={foo:function b(){}};" ],
 
-		[	"call(function A(){});", "call(function a(){});" ]
+		[	"call(function A(){});", "call(function a(){});" ],
+
+		[	"do{}while(1)" ],
+
+		[	"do{}while(1)A();", "do{}while(1);A();" ]
 	];
 
