The only way I found to make it work is to implement the 2nd patch suggested in this trac ticket
I know it’s a patch in the core files, but in the next version of WP (3.6), the change is supposed to be comited, so there shouldn’t be any problems with updates.
Edit
Note/Disclaimer: The following mini-plugin was ripped out of Daniel Bachhubers “Edit-Flow” GitHub Plugin and the patch posted at the ticket. It’s not tested and wasn’t added by the person who answered this question.
<?php
defined( 'ABSPATH' ) OR exit;
/** Plugin Name: Fix Preview Link */
add_filter( 'preview_post_link', 'preview_link_fix' );
function preview_link_fix( $preview_link )
{
$post = get_post( get_the_ID() );
if (
! is_admin()
OR 'post.php' != $GLOBALS['pagenow']
)
return $preview_link;
$args = array(
'p' => $post->ID
,'preview' => 'true'
);
return add_query_arg( $args, home_url() );
}