I'm using this bit to insert/update a custom post type from the front-end. The date is set from a custom jquery datepicker.

        if (strtotime($date) < strtotime('tomorrow')) {
                $newpostdata['post_status'] = 'publish';
        } elseif (strtotime($date) > strtotime('today')) {
                $newpostdata['post_status'] = 'future';
                $newpostdata['post_date'] = date('Y-m-d H:i:s', strtotime($date));
        }
        
        if ('insert' == $operation) {
            $err = wp_insert_post($newpostdata, true);
        } elseif ('edit' == $operation) {
            $newpostdata['ID'] = $post_id;
            $err = wp_update_post($newpostdata);
        }

**This works** when first publishing the post, setting it correctly as `publish` or `future`, with the correct date.

**This doesn't work** when editing the same post, neither from `publish` to `future` nor the other way around. Everything else is properly updated, except for the post status/future_date.

*UPDATE*: Actually, `post_date` does change accordingly. But `post_status` seems to be ignored.

Any clues?