diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SyntaxErrorTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SyntaxErrorTest.java
index 65c88b1..dd1a787 100644
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SyntaxErrorTest.java
+++ b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SyntaxErrorTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -158,7 +158,7 @@
 		"1. ERROR in <test> (at line 2)\n"+
 		"	o = { s: \"Success\"; };								\n"+
 		"	                  ^\n"+
-		"Syntax error on token \";\", delete this token\n"+
+		"Syntax error on token \";\", , expected\n"+
 		"----------\n";
 
 	String testName = "<test>";
@@ -180,7 +180,7 @@
 		"1. ERROR in <test> (at line 2)\n"+
 		"	var o = { s: \"Success\"; };								\n"+
 		"	                      ^\n"+
-		"Syntax error on token \";\", delete this token\n"+
+		"Syntax error on token \";\", , expected\n"+
 		"----------\n";
 
 	String testName = "<test>";
@@ -324,58 +324,4 @@
 		expectedSyntaxErrorDiagnosis,
 		testName);
 }
-
-//public void test06() {
-//	String s = 
-//		"(x=7,y=5)"; 	
-//
-//	String expectedSyntaxErrorDiagnosis =
-//		"";
-//
-//	String testName = "<test06>";
-//	checkParse(
-//		s.toCharArray(),
-//		expectedSyntaxErrorDiagnosis,
-//		testName);
-//}
-//public void test06a() {
-//	String s = 
-//		"x=7,y=5;"; 	
-//
-//	String expectedSyntaxErrorDiagnosis =
-//		"";
-//
-//	String testName = "<test06>";
-//	checkParse(
-//		s.toCharArray(),
-//		expectedSyntaxErrorDiagnosis,
-//		testName);
-//}
-//public void test07() {
-//	String s = 
-//		"{x:7,y:5}"; 	
-//
-//	String expectedSyntaxErrorDiagnosis =
-//		"";
-//
-//	String testName = "<test06>";
-//	checkParse(
-//		s.toCharArray(),
-//		expectedSyntaxErrorDiagnosis,
-//		testName);
-//}
-//public void test08() {
-//	String s = 
-//		"return \"pageXOffset\" in n ? {x:n.pageXOffset,y:n.pageYOffset} : (n=d.doc.documentElement, n.clientHeight ? {x:d._fixIeBiDiScrollLeft(n.scrollLeft),y:n.scrollTop}:(n=d.body(),{x:n.scrollLeft||0,y:n.scrollTop||0}));};"; 	
-//
-//	String expectedSyntaxErrorDiagnosis =
-//		"";
-//
-//	String testName = "<test>";
-//	checkParse(
-//		s.toCharArray(),
-//		expectedSyntaxErrorDiagnosis,
-//		testName);
-//}
-
 }
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/AbstractRegressionTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/AbstractRegressionTest.java
index 3cce032..637d876 100644
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/AbstractRegressionTest.java
+++ b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/AbstractRegressionTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -681,7 +681,7 @@
 				// Compute class name by removing ".java" and replacing slashes
 				// with dots
 				String className = sourceFile.substring(0,
-						sourceFile.length() - 3).replace('/', '.').replace(
+						sourceFile.length() - 5).replace('/', '.').replace(
 						'\\', '.');
 				if (className.endsWith(PACKAGE_INFO_NAME))
 					return;
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicParserTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicParserTests.java
index 3e0d568..82b69a8 100644
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicParserTests.java
+++ b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicParserTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -886,7 +886,7 @@
 		this.runParseTest(
 				"a=1,b=2",
 			"X.js",
-				"(a = 1), (b = 2);\n"			
+				"((a = 1), (b = 2));\n"			
 		);
 	}
 
@@ -895,7 +895,7 @@
 		this.runParseTest(
 				"a=1,funcall(0),5",
 			"X.js",
-				"(a = 1), funcall(0), 5;\n"			
+				"((a = 1), funcall(0), 5);\n"			
 		);
 	}
 
