only update progress to zero when necessary