def handlePacket_PM(self, ad, data):
        # Direct: Private Message

        def cb(dch, n, rest):

            flags, rest = self.decodePacket('!B+', rest)

            text, rest = self.decodeString2(rest)

            if rest:
                raise BadPacketError("Extra data")

            notice = bool(flags & NOTICE_BIT)

            if notice:
                nick = "*N %s" % n.nick
                dch.pushChatMessage(nick, text)
            else:
                dch.pushPrivMsg(n.nick, text)

        self.handlePrivMsg(ad, data, cb)