Could you change the implementation to the following?

mailcore::AbstractMessage * messageCopy;
messageCopy = (mailcore::AbstractMessage *)_message->copy()->autorelease();
return MCO_TO_OBJC(messageCopy)

Keep in mind that MCOAbstractMessage is abstract.