def broadcastNewTopic(self, topic):
        osm = self.main.osm

        if len(topic) > 255:
            topic = topic[:255]

        # Update topic locally
        if not self.updateTopic(osm.me, osm.me.nick, topic, changed=True):

            # Topic is controlled by a bridge node
            self.topic_node.bridge_data.sendTopicChange(topic)
            return

        packet = osm.mrm.broadcastHeader('TP', osm.me.ipp)
        packet.append(struct.pack('!I', osm.mrm.getPacketNumber_search()))

        packet.append(osm.me.nickHash())
        packet.append(struct.pack('!B', len(topic)))
        packet.append(topic)

        osm.mrm.newMessage(''.join(packet), tries=4)