diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 7866386e1869ca8a2d087e31d8066af76cfb8eb4..0ba1a75c418f54328dd8c879465312bc4a1eb945 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,8 @@
+2003-01-29  Tom Tromey  <tromey@redhat.com>
+
+	* parse.y (patch_assignment): Only transform the rhs of an
+	assignment when compiling to native.
+
 2003-01-28  Tom Tromey  <tromey@redhat.com>
 
 	* jcf-write.c (generate_bytecode_conditional): Typo fixes.
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index 48d48a91ab952cf728c4a11801ed875a24f8ecef..2096a8e19f6c0a42535e92122a066c82c560f038 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -12640,7 +12640,7 @@ patch_assignment (tree node, tree wfl_op1)
     }
 
   /* Copy the rhs if it's a reference.  */
-  if (! flag_check_references && optimize > 0)
+  if (! flag_check_references && ! flag_emit_class_files && optimize > 0)
     {
       switch (TREE_CODE (new_rhs))
 	{