--- helper.c 2008-01-06 20:38:45.000000000 +0100 +++ helper.c.new 2008-03-20 22:39:17.000000000 +0100 @@ -1008,6 +1008,7 @@ DESC_S_MASK | DESC_W_MASK | DESC_A_MASK); env->eflags &= ~env->fmask; + DF = 1 - (2 * ((env->eflags >> 10) & 1)); if (code64) env->eip = env->lstar; else