calendar/preferences.php defines two different page layouts and this can cause it to loose blocks. This is especially bad if you've got a theme which only displays side-post blocks on that page - you loose all blocks and ability to add blocks.
I've given two ways to reproduce it... the theme modifying way is the easy one..
Steps to reproduce 1.
- Apply the attached patch (which switches block regions around for clean theme)
- Go to calendar
- Click on the preferences button
- The blocks page is displayed with standard block
- All blocks are lost, because they are all side-pre blocks and now auto-moved
Steps to reproduce 2
- Turn editing on
- Go to a calendar page
- Configure the navigation block to be on the right side on calendar-* pages
- Click on the preferences button on a calendar page to get to calendar/preferences.php
- You are able to see all calendar blocks visible on this page
- The navigation block is lost, because the block isn't auto-flipped