delay: avoid negative overflow