diff --git a/src/testdir/test3.in b/src/testdir/test3.in
index a33a4cb..de86700 100644
--- a/src/testdir/test3.in
+++ b/src/testdir/test3.in
Binary files differ
diff --git a/src/testdir/test3.ok b/src/testdir/test3.ok
index edd9e23..0d0e76f 100644
--- a/src/testdir/test3.ok
+++ b/src/testdir/test3.ok
@@ -1707,10 +1707,10 @@
 
 JSSTART
 var foo = [
-1,  // indent 8 more
+	1,
 	2,
 	3
-	];  // indent 8 less
+];
 JSEND
 
 
@@ -1720,7 +1720,7 @@
 		1,
 		2,
 		3
-			];  // indent 16 less
+	];
 }
 JSEND
 
@@ -1732,6 +1732,8 @@
 			cond) {
 		stmt;
 	}
+	window.something.left =
+		(width - 50 + offset) + "px";
 	var class_name='myclass';
 
 	function private_method() {
@@ -1747,15 +1749,15 @@
 
 		$(this).data(class_name+'_public',$.extend({},{
 			foo: 'bar',
-		bar: 2,  // indent 8 more
-		foobar: [  // indent 8 more
-			1,  // indent 8 more
-		2,  // indent 16 more
-		3   // indent 16 more
+			bar: 2,
+			foobar: [
+				1,
+				2,
+				3
 			],
-		callback: function(){  // indent 8 more
-			return true;  // indent 8 more
-		}  // indent 8 more
+			callback: function(){
+				return true;
+			}
 		}, options||{}));
 	}
 
@@ -1791,9 +1793,9 @@
 		foo: 'bar',
 		bar: 2,
 		foobar: [
-		1,  // indent 8 more
-		2,  // indent 8 more
-		3   // indent 8 more
+			1,
+			2,
+			3
 		],
 		callback: function(){
 			return true;
@@ -1808,15 +1810,15 @@
 	function init(options) {
 		$(this).data(class_name+'_public',$.extend({},{
 			foo: 'bar',
-		bar: 2,  // indent 8 more
-		foobar: [  // indent 8 more
-			1,  // indent 8 more
-		2,  // indent 16 more
-		3  // indent 16 more
+			bar: 2,
+			foobar: [
+				1,
+				2,
+				3
 			],
-		callback: function(){  // indent 8 more
-			return true;  // indent 8 more
-		}  // indent 8 more
+			callback: function(){
+				return true;
+			}
 		}, options||{}));
 	}
 })(jQuery);
