A sequence of two patches is attached. The first fixes the ~2/~4 bug, signalling an error for any unrepresentable offset. The second is a bonus patch, which fixes related problems in ~z, the RFC 822 zone format specifier. Prior to the patch, ~z outputs "Z" for UT, which would be correct for ISO 8601 format but is deprecated (along with all the other single-letter syntax) for RFC 822. The patch changes that to the approved "+0000". ~z also had exactly the same problems as ~2/~4 regarding unrepresentable offsets, so the patch fixes them in the same way. I could report the ~z problems in a separate ticket if you like. Beware that the second of these patches has some textual dependence on the first, so trying to handle them separately might just be confusing. -zefram