diff --git a/dev/build.xml b/dev/build.xml
index c943e06..b524b70 100755
--- a/dev/build.xml
+++ b/dev/build.xml
@@ -308,7 +308,8 @@
         <!-- CompilerTest compiles the hello sample. -->
         <pathelement location="${gwt.root}/samples/hello/src/"/>
         <!-- CompilerTest needs the dependecies to compile a project that uses UiBinder. -->
-        <pathelement location="${gwt.tools.lib}/streamhtmlparser/streamhtmlparser-jsilver-r10/streamhtmlparser-jsilver-r10-1.5-rebased.jar"/>
+        <pathelement location="${gwt.tools.lib}/gss/2014-09-11/closure-stylesheets-rebased.jar"/>
+	<pathelement location="${gwt.tools.lib}/streamhtmlparser/streamhtmlparser-jsilver-r10/streamhtmlparser-jsilver-r10-1.5-rebased.jar"/>
       </extraclasspaths>
     </gwt.junit>
   </target>
diff --git a/user/test/com/google/gwt/resources/ResourcesGwtSuite.java b/user/test/com/google/gwt/resources/ResourcesGwtSuite.java
index abd15aa..2647887 100644
--- a/user/test/com/google/gwt/resources/ResourcesGwtSuite.java
+++ b/user/test/com/google/gwt/resources/ResourcesGwtSuite.java
@@ -1,12 +1,12 @@
 /*
  * Copyright 2008 Google Inc.
- * 
+ *
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
  * use this file except in compliance with the License. You may obtain a copy of
  * the License at
- * 
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
@@ -53,13 +53,13 @@
     suite.addTestSuite(CSSResourceTest.class);
 
     // GSS
+    suite.addTestSuite(AutoConversionTest.class);
     suite.addTestSuite(GssResourceTest.class);
     suite.addTestSuite(DebugObfuscationStyleTest.class);
     suite.addTestSuite(PrettyObfuscationStyleTest.class);
     suite.addTestSuite(StableShortTypeObfuscationStyleTest.class);
     suite.addTestSuite(StableNoTypeObfuscationStyleTest.class);
     suite.addTestSuite(StableObfuscationStyleTest.class);
-    suite.addTestSuite(AutoConversionTest.class);
     return suite;
   }
 }
diff --git a/user/test/com/google/gwt/resources/client/gss/AllGwtTests.java b/user/test/com/google/gwt/resources/client/gss/AllGwtTests.java
deleted file mode 100644
index 6789151..0000000
--- a/user/test/com/google/gwt/resources/client/gss/AllGwtTests.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2014 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.gwt.resources.client.gss;
-
-import com.google.gwt.junit.tools.GWTTestSuite;
-
-import junit.framework.Test;
-
-/**
- * Suite for all GWT tests.
- */
-public class AllGwtTests extends GWTTestSuite {
-
-  public static Test suite() {
-    GWTTestSuite suite = new GWTTestSuite();
-    suite.addTestSuite(GssResourceTest.class);
-    suite.addTestSuite(DebugObfuscationStyleTest.class);
-    suite.addTestSuite(PrettyObfuscationStyleTest.class);
-    suite.addTestSuite(StableShortTypeObfuscationStyleTest.class);
-    suite.addTestSuite(StableNoTypeObfuscationStyleTest.class);
-    suite.addTestSuite(StableObfuscationStyleTest.class);
-    suite.addTestSuite(AutoConversionTest.class);
-    return suite;
-  }
-}
diff --git a/user/test/com/google/gwt/resources/client/gss/RenamingClassNameTest.java b/user/test/com/google/gwt/resources/client/gss/RenamingClassNameTest.java
index a59c03b..5e3e916 100644
--- a/user/test/com/google/gwt/resources/client/gss/RenamingClassNameTest.java
+++ b/user/test/com/google/gwt/resources/client/gss/RenamingClassNameTest.java
@@ -31,7 +31,7 @@
  * @see com.google.gwt.resources.client.gss.GssResourceTest
  */
 public abstract class RenamingClassNameTest extends GWTTestCase {
-  static final String OBFUSCATION_PATTERN = "[a-zA-Z][a-zA-Z0-9]*_[a-zA-Z][a-zA-Z0-9]*";
+  static final String OBFUSCATION_PATTERN = "[a-zA-Z][a-zA-Z0-9]*-[a-zA-Z][a-zA-Z0-9]*";
 
   /**
    * Test that style classes mentioned as external are not obfuscated.
