I hate Firefox and it hates me, CSS help

■■■■ it! Why does Firefox always have to display stuff incorrectly while Opera and even IE sometimes display it correctly by standards. My lastest adventure: say you have a left hand div and a right hand div and then a footer below these two divs and all of them are 5px apart. I float the two divs to the left and then on the bottom one I use clear:both. I apply margin-top:5px to the bottom one so it will be 5 pixels apart from the two divs.


<html>
	<head>
		<style>
			#left {border:1px solid black;width:100px;height:400px;float:left}
			#right {border:1px solid black;width:400px;height:400px;float:left;margin-left:5px}
			#footer {border:1px solid black;width:505px;height:100px;clear:both;margin-top:5px}
		</style>
	</head>
	<body>
	<div id="left">
	left
	</div>
	<div id="right">
	right
	</div>
	<div id="footer">
	footer
	</div>
	</body>
</html>

Now Opera and IE display that correctly and Firefox just disregards margin-top:5px if the clear:both property has been used. gg firefox, gg.
Anyone know how to fix this?