Blocks are sorted inconsistently for display on the site and for listing on the blocks admin page.
For display, http://api.drupal.org/api/function/block_list/6 uses an ORDER BY clause in the SELECT statement:
... ORDER BY b.region, b.weight, b.module
Note that if 2 blocks in the same region are supplied by the same module and have the same weight then the order in which they are rendered is not controlled in any way.
For the admin page, http://api.drupal.org/api/function/block_admin_display/6 uses http://api.drupal.org/api/function/_block_compare to determine the sort order. This ends up with blocks sorted by region, weight then title.
When JS is turned of it is very easy to set blocks to the same weight and then wonder why they render differently from the order shown on the admin page. However I actually stumbled on this problem with JS on; quite why 2 blocks ended up with the same weight is another matter!
This problem appears to affect 5.x and 7.x also.
Comments
Comment #1
gpk commentedDiscovered why blocks were ending up with the same weight: #565220: Fix Weight form element behavior.