Personally I do not have a straight answer to the reason behind having to change the menu order but if you change the way the CSS is designed a little it can fix your issue.
As noted earlier you need to ensure that the 'li' links are all listed in the regular order.
From this point if you fix some CSS you can manipulate it to look the same.
Inside your CSS if you change Line 27-28 to this:
#menu-main-menu {padding:30px 50px 0 0; float: right}
#menu-main-menu li {float: left; list-style: none outside none; margin-left: 30px; text-transform: uppercase;}
Basically instead of putting the #menu-main-menu li set to float right, you would change the menu to float right and the menu to float left to have it set to the proper order.
Inside of #menu-main-menu I added
float:right;
and inside of #menu-main-menu li I changed float:right to
float:left;
And if you want to see the code live here you go: http://jsfiddle.net/GpjMc/1/
You can also have it display inline instead of float:left as well. Whatever formatting works best for you.
#menu-main-menu {padding:30px 50px 0 0; float: right}
#menu-main-menu li {display: inline; list-style: none outside none; margin-left: 30px; text-transform: uppercase;}