'Copies a message from self to dst if needed, updating the status
Note that this function does not check against dryrun settings,
so you need to ensure that it is never called in a
dryrun mode.
:param uid: uid of the message to be copied.
:param dstfolder: A BaseFolder-derived instance
:param statusfolder: A LocalStatusFolder instance
:param register: whether we should register a new thread."
:returns: Nothing on success, or raises an Exception.'

def copymessageto(self, uid, dstfolder, statusfolder, register=1):

    realcopy = ((uid > 0) and (not dstfolder.uidexists(uid)))
    super(GmailMaildirFolder, self).copymessageto(uid, dstfolder, statusfolder, register)
    if (realcopy and self.synclabels):
        try:
            labels = dstfolder.getmessagelabels(uid)
            statusfolder.savemessagelabels(uid, labels, mtime=self.getmessagemtime(uid))
        except NotImplementedError:
            return
