bug fix: do not discard negative dW