A monthly schedule occurring on day 29,30 or 31 with a duration starting in a month with less days than that (eg occur on 31st starting June 30) doesn't start when expected, instead it rolls over to the next month.
Example:
Day 31 of Every 1 Month
Starting at June 30, 2012 (or any day in June)
Will trigger on
July 1
August 31
etc.
Should be:
June 30
July 31
etc.
This has been fixed in the 4.0.x branch (r52198) and will go into the 4.0.5.17 build.
There is a simple work-around for this problem. Just configure your schedule to start on any day in the first month you want this schedule to trigger.
Actually will go into build 4.0.5.19.