Look for classes that got an update between 5.5/6 or were moved to different packages.
If your main.as was compiled with flash CS5.5 and the loaded one with 6,
if there are conflicting class definitions, the parent`s one will be used, thus causing the loaded one not to function as expected.
Provide a link to the online implementation so that file locations versus html pathing can be checked.
Ok I fixed it.
It was a problem with the Apache server.
I restricted access to subfolders, and it seems that it blocked the new .swf for some reason.
I fixed it like this (httpd-vhosts.conf):
AllowOverride AuthConfig Indexes
Deny from all
Allow from 127.0.0.1
Allow from all
Though it's weird it only happened after I switched to the new file, because I didn't have to do this with the old build.
Any idea why it happens?