diff --git a/common.ant.xml b/common.ant.xml
index 7ed01be..3558e62 100755
--- a/common.ant.xml
+++ b/common.ant.xml
@@ -209,7 +209,7 @@
           <pathelement location="${gwt.tools.lib}/junit/junit-3.8.1.jar" />
           <pathelement location="${gwt.tools.lib}/selenium/selenium-java-client-driver.jar" />
           <pathelement location="${gwt.tools.lib}/w3c/sac/sac-1.3.jar" />
-          <pathelement location="${gwt.tools.lib}/w3c/flute/flute-1.3.jar" />
+          <pathelement location="${gwt.tools.lib}/w3c/flute/flute-1.3-gg1.jar" />
           <extraclasspaths />
         </classpath>
 
diff --git a/dev/build.xml b/dev/build.xml
index 0991df8..5073f0a 100755
--- a/dev/build.xml
+++ b/dev/build.xml
@@ -36,7 +36,7 @@
         <pathelement location="${gwt.tools.lib}/jfreechart/jfreechart-1.0.3.jar" />
         <pathelement location="${gwt.tools.lib}/selenium/selenium-java-client-driver.jar" />
         <pathelement location="${gwt.tools.lib}/w3c/sac/sac-1.3.jar" />
-        <pathelement location="${gwt.tools.lib}/w3c/flute/flute-1.3.jar" />
+        <pathelement location="${gwt.tools.lib}/w3c/flute/flute-1.3-gg1.jar" />
         <pathelement location="${gwt.build.lib}/gwt-dev-${build.host.platform}.jar" />
         <pathelement location="${alldeps.jar}" />
       </classpath>
diff --git a/eclipse/servlet/.classpath b/eclipse/servlet/.classpath
index c93fd8b..2cc97ab 100644
--- a/eclipse/servlet/.classpath
+++ b/eclipse/servlet/.classpath
@@ -6,7 +6,7 @@
 	<classpathentry kind="var" path="GWT_TOOLS/lib/tomcat/servlet-api-2.4.jar"/>
 	<classpathentry combineaccessrules="false" kind="src" path="/gwt-user"/>
 	<classpathentry combineaccessrules="false" kind="src" path="/gwt-dev"/>
-	<classpathentry kind="var" path="GWT_TOOLS/lib/w3c/flute/flute-1.3.jar"/>
+	<classpathentry kind="var" path="GWT_TOOLS/lib/w3c/flute/flute-1.3-gg1.jar"/>
 	<classpathentry kind="var" path="GWT_TOOLS/lib/w3c/sac/sac-1.3.jar"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/eclipse/user/.classpath b/eclipse/user/.classpath
index c4321d9..b0d2eec 100644
--- a/eclipse/user/.classpath
+++ b/eclipse/user/.classpath
@@ -23,7 +23,7 @@
 	<classpathentry kind="var" path="GWT_TOOLS/lib/xerces/xerces-2_9_1/xercesImpl-NoMetaInf.jar"/>
 	<classpathentry kind="var" path="GWT_TOOLS/lib/xerces/xerces-2_9_1/xml-apis.jar"/>
 	<classpathentry kind="var" path="GWT_TOOLS/lib/w3c/sac/sac-1.3.jar"/>
-	<classpathentry kind="var" path="GWT_TOOLS/lib/w3c/flute/flute-1.3.jar"/>
+	<classpathentry kind="var" path="GWT_TOOLS/lib/w3c/flute/flute-1.3-gg1.jar"/>
 	<classpathentry kind="var" path="GWT_TOOLS/lib/cglib/cglib-2.2.jar"/>
 	<classpathentry kind="var" path="GWT_TOOLS/lib/easymock/easymock.jar"/>
 	<classpathentry kind="var" path="GWT_TOOLS/lib/easymock/easymockclassextension.jar"/>
diff --git a/user/build.xml b/user/build.xml
index 9153f8e..2cf7c5a 100755
--- a/user/build.xml
+++ b/user/build.xml
@@ -80,7 +80,7 @@
         <pathelement location="${gwt.tools.lib}/jfreechart/jfreechart-1.0.3.jar" />
         <pathelement location="${gwt.tools.lib}/selenium/selenium-java-client-driver.jar" />
         <pathelement location="${gwt.tools.lib}/w3c/sac/sac-1.3.jar" />
-        <pathelement location="${gwt.tools.lib}/w3c/flute/flute-1.3.jar" />
+        <pathelement location="${gwt.tools.lib}/w3c/flute/flute-1.3-gg1.jar" />
         <pathelement location="${gwt.dev.jar}" />
       </classpath>
     </gwt.javac>
@@ -132,7 +132,7 @@
       <fileset dir="${javac.out}" />
       <zipfileset src="${gwt.tools.lib}/tomcat/servlet-api-2.5.jar" excludes="**/*.java"/>
       <zipfileset src="${gwt.tools.lib}/w3c/sac/sac-1.3.jar" />
-      <zipfileset src="${gwt.tools.lib}/w3c/flute/flute-1.3.jar" />
+      <zipfileset src="${gwt.tools.lib}/w3c/flute/flute-1.3-gg1.jar" />
     </gwt.jar>
   </target>
 
diff --git a/user/src/com/google/gwt/resources/css/GenerateCssAst.java b/user/src/com/google/gwt/resources/css/GenerateCssAst.java
index afcb68e..e76e8c6 100644
--- a/user/src/com/google/gwt/resources/css/GenerateCssAst.java
+++ b/user/src/com/google/gwt/resources/css/GenerateCssAst.java
@@ -796,6 +796,13 @@
     assert selector.length() > 0;
 
     StringBuilder toReturn = new StringBuilder();
+
+    if (selector.charAt(0) == '-') {
+      // Allow leading hyphen
+      selector = selector.substring(1);
+      toReturn.append('-');
+    }
+
     if (!isIdentStart(selector.charAt(0))) {
       toReturn.append('\\');
     }
@@ -867,11 +874,12 @@
   }
 
   private static boolean isIdentPart(char c) {
-    return Character.isLetterOrDigit(c) || (c == '\\') || (c == '-');
+    return Character.isLetterOrDigit(c) || (c == '\\') || (c == '-')
+        || (c == '_');
   }
 
   private static boolean isIdentStart(char c) {
-    return Character.isLetter(c) || (c == '\\');
+    return Character.isLetter(c) || (c == '\\') || (c == '_');
   }
 
   /**
diff --git a/user/src/com/google/gwt/resources/css/RtlVisitor.java b/user/src/com/google/gwt/resources/css/RtlVisitor.java
index 3994231..87b13ea 100644
--- a/user/src/com/google/gwt/resources/css/RtlVisitor.java
+++ b/user/src/com/google/gwt/resources/css/RtlVisitor.java
@@ -235,8 +235,11 @@
       String[] parts = name.toLowerCase().split("-");
       StringBuffer methodName = new StringBuffer("propertyHandler");
       for (String part : parts) {
-        methodName.append(Character.toUpperCase(part.charAt(0)));
-        methodName.append(part, 1, part.length());
+        if (part.length() > 0) {
+          // A leading hyphen, or something like foo--bar, which is weird
+          methodName.append(Character.toUpperCase(part.charAt(0)));
+          methodName.append(part, 1, part.length());
+        }
       }
 
       try {
diff --git a/user/src/com/google/gwt/resources/css/ast/CssProperty.java b/user/src/com/google/gwt/resources/css/ast/CssProperty.java
index 0d200f1..a8e431c 100644
--- a/user/src/com/google/gwt/resources/css/ast/CssProperty.java
+++ b/user/src/com/google/gwt/resources/css/ast/CssProperty.java
@@ -406,6 +406,7 @@
   private ListValue value;
 
   public CssProperty(String name, Value value, boolean important) {
+    assert name.length() > 0 : "name";
     this.name = name;
     setValue(value);
     this.important = important;
diff --git a/user/test/com/google/gwt/resources/client/CSSResourceTest.java b/user/test/com/google/gwt/resources/client/CSSResourceTest.java
index 1473b76..8e69a39 100644
--- a/user/test/com/google/gwt/resources/client/CSSResourceTest.java
+++ b/user/test/com/google/gwt/resources/client/CSSResourceTest.java
@@ -284,7 +284,10 @@
     assertTrue(text.contains("runtime:PASSED;"));
 
     // Check interestingly-named idents
-    assertTrue(text.contains("\\-some-wacky-extension"));
+    assertTrue(text.contains("-some-wacky-extension"));
+    assertTrue(text.contains("another-extension:-bar"));
+    assertTrue(text.contains("-unescaped-hyphen:-is-better"));
+    assertTrue(text.contains("with_underscore:_is_better"));
     assertTrue(text.contains("ns\\:tag"));
     assertTrue(text.contains("ns\\:tag:pseudo"));
 
diff --git a/user/test/com/google/gwt/resources/client/test.css b/user/test/com/google/gwt/resources/client/test.css
index ec8cd09..0d3efdb 100644
--- a/user/test/com/google/gwt/resources/client/test.css
+++ b/user/test/com/google/gwt/resources/client/test.css
@@ -109,6 +109,8 @@
 div {
   \-some-wacky-extension : boo;
   another-extension: \-bar;
+  -unescaped-hyphen: -is-better;
+  with_underscore: _is_better;
 }
 
 div {
diff --git a/user/test/com/google/gwt/resources/css/ExtractClassNamesVisitorTest.java b/user/test/com/google/gwt/resources/css/ExtractClassNamesVisitorTest.java
index 0ebaaf6..5a00a0b 100644
--- a/user/test/com/google/gwt/resources/css/ExtractClassNamesVisitorTest.java
+++ b/user/test/com/google/gwt/resources/css/ExtractClassNamesVisitorTest.java
@@ -36,7 +36,8 @@
 
     Set<String> expected = new TreeSet<String>(Arrays.asList("selector1",
         "selector2", "selector3", "external1", "external2", "external3",
-        "prefixed-selector"));
+        "prefixed-selector", "selector_with_underscores",
+        "-selector-with-hyphen"));
     Set<String> actual = new TreeSet<String>(v.getFoundClasses());
 
     assertEquals(expected, actual);
@@ -50,7 +51,8 @@
     test(TreeLogger.NULL, "extractClassNames", false, v);
 
     Set<String> expected = new TreeSet<String>(Arrays.asList("selector1",
-        "selector2", "selector3", "external1", "external2", "external3"));
+        "selector2", "selector3", "external1", "external2", "external3",
+        "selector_with_underscores", "-selector-with-hyphen"));
     Set<String> actual = new TreeSet<String>(v.getFoundClasses());
 
     assertEquals(expected, actual);
diff --git a/user/test/com/google/gwt/resources/css/extractClassNames_expected.css b/user/test/com/google/gwt/resources/css/extractClassNames_expected.css
index 3a023ff..51027ff 100644
--- a/user/test/com/google/gwt/resources/css/extractClassNames_expected.css
+++ b/user/test/com/google/gwt/resources/css/extractClassNames_expected.css
@@ -24,6 +24,12 @@
 .prefixed-selector {
 }
 
+.selector_with_underscores {
+}
+
+.-selector-with-hyphen {
+}
+
 /* This is not a class selector */
 fail {
 }
diff --git a/user/test/com/google/gwt/resources/css/extractClassNames_test.css b/user/test/com/google/gwt/resources/css/extractClassNames_test.css
index 3a023ff..51027ff 100644
--- a/user/test/com/google/gwt/resources/css/extractClassNames_test.css
+++ b/user/test/com/google/gwt/resources/css/extractClassNames_test.css
@@ -24,6 +24,12 @@
 .prefixed-selector {
 }
 
+.selector_with_underscores {
+}
+
+.-selector-with-hyphen {
+}
+
 /* This is not a class selector */
 fail {
 }
