См.
http://community.livejournal.com/fprog/20882.html
.