bug fix in shift