Ok, so after reading the codex page on the ‘save_post’ hook, I spotted that they use a different way of dealing with revisions. So removing the if {...}
surrounding the wp_update_post( $posttitle )
and inserting the following code fixed my problem:
if ( $post = wp_is_post_revision( $post ) )
$post = $post;