FUNCTION y2k(tcFieldName) LOCAL ldDate i = 0 SCAN i = i + 1 IF MOD(i,1000) = 0 WAIT WINDOW NOWAIT 'Y2K: Now processing record ' + ALLTRIM(STR(RECNO())) + ' of ' + ALLTRIM(STR(RECCOUNT())) ENDIF IF EMPTY(&tcFieldName) ELSE ldDate = &tcFieldName lcYear2 = SUBSTR(ALLTRIM(STR(YEAR(ldDate))),3,2) IF lcYear2 < '80' ldDate = DATE(2000 + VAL(lcYear2),MONTH(ldDate),DAY(ldDate)) ELSE ldDate = DATE(1900 + VAL(lcYear2),MONTH(ldDate),DAY(ldDate)) ENDIF ENDIF REPLACE &tcFieldName WITH ldDate ENDSCAN RETURN .T.In VFP on my machine running Windows 7 it runs fine. On my client's machine running an EXE file in Vista, it takes FOREVER.