diff --git a/src/code/amd64.c b/src/code/amd64.c
index ed8e4d5a3e017b64cbd8ac510fd4bcb18df7c8a6..f3eac20b3e0c8f21ec87ae1f6fa1d08eddfab009 100644
--- a/src/code/amd64.c
+++ b/src/code/amd64.c
@@ -468,6 +468,11 @@ static void neg_reg( enum amd64_reg reg )
 
 static void mov_imm_reg( long imm, enum amd64_reg reg )
 {
+  if( !imm ) 
+  {
+    clear_reg(reg);
+    return;
+  }
   if( (imm > 0x7fffffffLL) || (imm < -0x80000000LL) )
   {
     rex(1,0,0,reg);