So, any ideas? when I call MatMult(A,b,x,info) the ghosts get updated. When I call KSPSolve(ksp,b,x,info) the ghosts dont get updated (the multiplication routine is called... I checked that)... It seems that KSP calles MatMult with different vectors... not the original b and x...