Fix for incorrect or non-standard Date headers Problem: Some remailers send out mails with invalid Date header: Date: Fri, 26 Apr 2002 09:07:00 0200 (CEST) According to RFC 822, the "+" sign of the time zone is mandatory. Date: Fri, 26 Apr 2002 09:07:00 +0200 (CEST) When calculating ping latency based on the Date header, Reliable simply expects a five character time zone and interpretes the first 3 as the positive or negative hour and the last 2 as the minutes. When it's only 4 characters long, Reliable uses a time zone that is 10 times larger as it should be. Additionally, the RFC permits the use of only the name of the North American time zones, GMT and UT, although this seems not to be widely used. Solution: Applying this patch makes Reliable recognize the time zone names and work around a missing "+" sign. This function is used also with Max-Date directives, which has the same syntax as the Date header. Fix: In file Process.bas, in function ResolveDate find the Line: Tmp(4) = Trim(Extract(Tmp(4), "(")) Original Code: 'Adjust for Time Zone Tmp(4) = Trim(Extract(Tmp(4), "(")) h = SVal(Left(Tmp(4), 3)) / 24 m = SVal(Mid(Tmp(4), 4)) / 60 / 24: If h < 0 Then m = -m If tempdate <> 0 Then ResolveDate = tempdate - h - m + gmtoffset Change the next three lines so that it looks like this: 'Adjust for Time Zone Tmp(4) = Trim(Extract(Tmp(4), "(")) m = 0 Select Case Tmp(4) Case "GMT", "UT": h = 0 Case "EDT": h = -4 Case "EST", "CDT": h = -5 Case "CST", "MDT": h = -6 Case "MST", "PDT": h = -7 Case "PST": h = -8 Case Else If Len(Tmp(4)) = 4 Then Tmp(4) = "+" + Tmp(4) h = SVal(Left(Tmp(4), 3)) m = SVal(Mid(Tmp(4), 4)) / 60 / 24: If h < 0 Then m = -m End Select If tempdate <> 0 Then ResolveDate = tempdate - h / 24 - m + gmtoffset