This is due to the last line of wpautop():
$pee = preg_replace(‘!(<pre.*?>)(.*?)</pre>!ise’, ” stripslashes(‘$1’) . clean_pre(‘$2’) . ‘</pre>’ “, $pee);
you can fix this by:
$pee = preg_replace(‘!(<pre.*?>)(.*?)</pre>!ise’, ” stripslashes(‘$1’) . stripslahes(clean_pre(‘$2’)) . ‘</pre>’ “, $pee);
hope this helps.