diff --git a/user/super/com/google/gwt/emul/java/lang/Math.java b/user/super/com/google/gwt/emul/java/lang/Math.java
index cb01dc1..82463fa 100644
--- a/user/super/com/google/gwt/emul/java/lang/Math.java
+++ b/user/super/com/google/gwt/emul/java/lang/Math.java
@@ -324,12 +324,10 @@
   }
 
   public static double signum(double d) {
-    if (d > 0.0d) {
-      return 1.0d;
-    } else if (d < 0.0d) {
-      return -1.0d;
+    if (d == 0. || Double.isNaN(d)) {
+      return d;
     } else {
-      return 0.0d;
+      return d < 0 ? -1 : 1;
     }
   }
 
diff --git a/user/test/com/google/gwt/emultest/java/lang/MathTest.java b/user/test/com/google/gwt/emultest/java/lang/MathTest.java
index 7f63a27..c47d4ff 100644
--- a/user/test/com/google/gwt/emultest/java/lang/MathTest.java
+++ b/user/test/com/google/gwt/emultest/java/lang/MathTest.java
@@ -475,6 +475,18 @@
     }
   }
 
+  public void testSignum() {
+    assertTrue(Double.isNaN(Math.signum(Double.NaN)));
+    assertTrue(isNegativeZero(Math.signum(-0.)));
+    assertEquals(0., Math.signum(0.), 0);
+    assertEquals(-1, Math.signum(-2), 0);
+    assertEquals(1, Math.signum(2), 0);
+    assertEquals(-1., Math.signum(-Double.MAX_VALUE), 0);
+    assertEquals(1., Math.signum(Double.MAX_VALUE), 0);
+    assertEquals(-1., Math.signum(Double.NEGATIVE_INFINITY), 0);
+    assertEquals(1., Math.signum(Double.POSITIVE_INFINITY), 0);
+  }
+
   public void testSin() {
     double v = Math.sin(0.0);
     assertEquals(0.0, v, 1e-7);
