That's because the "invisible" linefeeds in the text are being translated by <pre> as line breaks on the HTML page, and then when you add on the <br> that's being added by nl2br(), you get the double spaces between lines. Don't use the nl2br() function on the text, you don't need it if you're wrapping the text in <pre> tags.
It has happened to me before...
In cases like this, i use the oldschool str_replace("\n","<br>",$str) and that takes care of it or use the 5th example of nl2br here: http://us3.php.net/nl2br
Someone has coded a br2nl function for you which is the opposite...
Bookmarks