diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1cafdce267468a91529b5d9aa69016dd5db6adc4..3b3f434b572866e9b2576076027784d7b297705b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2001-06-09  Peter Jakubek <pjak@snafu.de>
+
+	* config/m68k/m68k.md (ashrdi_const): Fix right shift by 16.
+
 2001-06-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
 
 	* vax.h (NOTICE_UPDATE_CC): Set CC_NO_OVERFLOW in cc_status.flags
diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md
index c74b1424e57fb54b481899da309effaed5366bc0..452652005fd55e5f0d5a54ad703899c471e625c0 100644
--- a/gcc/config/m68k/m68k.md
+++ b/gcc/config/m68k/m68k.md
@@ -4805,7 +4805,7 @@
   else if (INTVAL (operands[2]) == 8)
     return \"move%.b %0,%1\;asr%.l %#8,%0\;ror%.l %#8,%1\";
   else if (INTVAL (operands[2]) == 16)
-    return \"move%.w %0,%1\;clr%.w %0\;swap %1\;ext%.l %0\";
+    return \"move%.w %0,%1\;swap %0\;ext%.l %0\;swap %1\";
   else if (INTVAL (operands[2]) == 48)
     return \"swap %0\;ext%.l %0\;move%.l %0,%1\;smi %0\;ext%.w %0\";
   else if (INTVAL (operands[2]) == 31)