How to fix planes rendered in the wrong order

I have 2 planes and even though one is closer to the camera, it’s still rendered behind the one farther from the camera.

You can see the result here: http://www.evil-dog.com/tempshare/RenderingBug.jpg

I understand that using a perspective camera will cause that, as soon as the center of the back sprite is closer to the center of the front sprite, then the back sprite will be rendered in front of the other but is there any trick I could do to prevent that?

I fixed that kind of problems by writing custom shaders that specify the rendering priority AND the ZTest options. Most of times you can simply take the source code for the shader you’re using and modify it to specify its rendering priority (“Queue” tag at the subshader):

http://unity3d.com/support/documentation/Components/SL-SubshaderTags.html

The ZTest option can be configured at the shader’s Pass:

http://unity3d.com/support/documentation/Components/SL-Pass.html

You should experiment with the ZTest and ZWrite options until you find the expected behavior.