diff -ru qemu-0.6.1/target-i386/translate.c qemu-0.6.1-A-prepare/target-i386/translate.c --- qemu-0.6.1/target-i386/translate.c 2004-11-14 21:51:33.000000000 +0100 +++ qemu-0.6.1-A-prepare/target-i386/translate.c 2004-12-14 17:32:29.000000000 +0100 @@ -874,8 +874,10 @@ static inline void gen_ins(DisasContext *s, int ot) { - gen_op_in_DX_T0[ot](); gen_string_movl_A0_EDI(s); + /* XXX: this is not correct, find another solution to avoid side-effect on restart (mmu fault) */ + gen_op_st_T0_A0[ot + s->mem_index](); + gen_op_in_DX_T0[ot](); gen_op_st_T0_A0[ot + s->mem_index](); gen_op_movl_T0_Dshift[ot](); if (s->aflag) {