Here's adding a day (cal.add(Calendar.DAY_OF_MONTH, 1)) repeatedly on sun, crossing this year's DST on its way back: Sat Oct 28 00:00:00 CEST 2006 Sun Oct 29 00:00:00 CEST 2006 Mon Oct 30 00:00:00 CET 2006 Tue Oct 31 00:00:00 CET 2006 Here's on Classpath 0.20 (both Kaffe and gij, so I assume classpath): Sat Oct 28 00:00:00 GMT+02:00 2006 Sun Oct 29 00:00:00 GMT+02:00 2006 Sun Oct 29 23:00:00 GMT+01:00 2006 Mon Oct 30 23:00:00 GMT+01:00 2006 Tue Oct 31 23:00:00 GMT+01:00 2006 TimeZone is Europe/Oslo and also CET. (Maybe another bug: I'm missing a "consistent"/"logical" way to "force" re-calculating from fields to time on Classpath's Calendar. Sun also had this problem, but invoking getTime() ensured that it was done. This "trick" doesn't work on Classpath's Calendar, but invoking .get(Date.DAY_OF_<whatever>) seems to work?!)