Thanks SergeyBiryukov for this fix. Works great for me.
For others looking at this later:
In wp-contactform.php, move this block of code (starting around line 13:
//Grab some default user info, if available (Submitted by Dan)
$wpcf_auto_email = get_profile('user_email');
$wpcf_auto_ID = get_profile('ID');
$wpcf_auto_first_name = get_usermeta($wpcf_auto_ID, 'first_name');
$wpcf_auto_last_name = get_usermeta($wpcf_auto_ID, 'last_name');
$wpcf_auto_name = $wpcf_auto_first_name.' '.$wpcf_auto_last_name;
if (empty($_POST['wpcf_email'])) {
$_POST['wpcf_email'] = $wpcf_auto_email;
}
if (empty($_POST['wpcf_your_name'])) {
$_POST['wpcf_your_name'] = $wpcf_auto_name;
}
And move it, placing it just before this line (around line 137):
if(wpcf_check_input()) // If the input check returns true (ie. there has been a submission & input is ok)