this tells me that cudaminer gets the difficulty wrong. So I have to compare the code that translates stratum difficulty into hash target.
if (opt_algo == ALGO_SCRYPT)
diff_to_target(work->target, sctx->job.diff / 65536.0);
else if (opt_algo == ALGO_KECCAK)
diff_to_target(work->target, sctx->job.diff / 256.0);
else
diff_to_target(work->target, sctx->job.diff);
is this the supposed fix? is it working ? I can integrate it if someone confirms it is good.