diff --git a/libjava/testsuite/ChangeLog b/libjava/testsuite/ChangeLog
index e13a434141ef918dc874f341848b358070c240a5..caf3a836a6d822bf168195b350505b0666f57384 100644
--- a/libjava/testsuite/ChangeLog
+++ b/libjava/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2003-02-16  Jeff Sturm  <jsturm@one-point.com>
+
+	* libjava.lang/CompareNaN.java: New test.
+	* libjava.lang/CompareNaN.out: New test.
+
 2003-02-16  Mark Wielaard  <mark@klomp.org>
 
 	* libjava.mauve/xfails: Add Class.reflect2 and String.getBytes FAILs.
diff --git a/libjava/testsuite/libjava.lang/CompareNaN.java b/libjava/testsuite/libjava.lang/CompareNaN.java
new file mode 100644
index 0000000000000000000000000000000000000000..77a6d6aa807e36c55508c27ab7d2a7b3c116d08c
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/CompareNaN.java
@@ -0,0 +1,15 @@
+/*
+ * JLS 4.2.3 specifies that (x op y) must be false if either x or y
+ * is NaN and op is one of <, >, <=, >=, or ==.
+ *
+ * Some targets may need specific options wired into libgcj.spec
+ * to pass this test.  For example, alpha-linux requires -mieee
+ * to prevent an unrecoverable fp trap.
+ */
+
+public class CompareNaN {
+  public static void main(String[] args) {
+    double x = Double.NaN;
+    System.out.println(x == x);
+  }
+}
diff --git a/libjava/testsuite/libjava.lang/CompareNaN.out b/libjava/testsuite/libjava.lang/CompareNaN.out
new file mode 100644
index 0000000000000000000000000000000000000000..c508d5366f70bba37fcc09d128b6537c4adb2c79
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/CompareNaN.out
@@ -0,0 +1 @@
+false