diff --git a/src/common/connection_handlers.py b/src/common/connection_handlers.py
index b0897f0f1251d93abd1cf702471b15b02a4f48d1..7a3a41e1213ad1f49706e2d82cc7641c4c8b2146 100644
--- a/src/common/connection_handlers.py
+++ b/src/common/connection_handlers.py
@@ -354,6 +354,11 @@ class ConnectionDisco:
                 self.pubsub_supported = True
                 if features.__contains__(common.xmpp.NS_PUBSUB_PUBLISH_OPTIONS):
                     self.pubsub_publish_options_supported = True
+                else:
+                    # Remove stored bookmarks accessible to everyone.
+                    our_jid = gajim.get_jid_from_account(self.name)
+                    self.send_pb_purge(our_jid, 'storage:bookmarks')
+                    self.send_pb_delete(our_jid, 'storage:bookmarks')
             if features.__contains__(common.xmpp.NS_BYTESTREAM):
                 our_jid = helpers.parse_jid(gajim.get_jid_from_account(self.name) +\
                         '/' + self.server_resource)
diff --git a/src/common/pubsub.py b/src/common/pubsub.py
index 37db5a8ce41847cf7531545b517448114f9418c2..7cd83ff0fd4ed38770b0282515392407c6a7fc1c 100644
--- a/src/common/pubsub.py
+++ b/src/common/pubsub.py
@@ -109,25 +109,37 @@ class ConnectionPubSub:
 
         self.connection.send(query)
 
-    def send_pb_delete(self, jid, node):
+    def send_pb_purge(self, jid, node):
+        """
+        Purge node: Remove all items
+        """
+        if not self.connection or self.connected < 2:
+            return
+        query = xmpp.Iq('set', to=jid)
+        d = query.addChild('pubsub', namespace=xmpp.NS_PUBSUB_OWNER)
+        d = d.addChild('purge', {'node': node})
+
+        self.connection.send(query)
+
+    def send_pb_delete(self, jid, node, on_ok=None, on_fail=None):
         """
         Delete node
         """
         if not self.connection or self.connected < 2:
             return
         query = xmpp.Iq('set', to=jid)
-        d = query.addChild('pubsub', namespace=xmpp.NS_PUBSUB)
+        d = query.addChild('pubsub', namespace=xmpp.NS_PUBSUB_OWNER)
         d = d.addChild('delete', {'node': node})
 
         def response(con, resp, jid, node):
-            if resp.getType() == 'result':
-                self.dispatch('PUBSUB_NODE_REMOVED', (jid, node))
-            else:
+            if resp.getType() == 'result' and on_ok:
+                on_ok(jid, node)
+            elif on_fail:
                 msg = resp.getErrorMsg()
-                self.dispatch('PUBSUB_NODE_NOT_REMOVED', (jid, node, msg))
+                on_fail(jid, node, msg)
 
         self.connection.SendAndCallForResponse(query, response, {'jid': jid,
-                'node': node})
+            'node': node})
 
     def send_pb_create(self, jid, node, configure = False, configure_form = None):
         """
diff --git a/src/gui_interface.py b/src/gui_interface.py
index 369c27637e9717426ba2da9b142829940b9a96d0..f43ac53c3f5ebc99ee2e39bdc171bdc9fb11216f 100644
--- a/src/gui_interface.py
+++ b/src/gui_interface.py
@@ -2064,19 +2064,6 @@ class Interface:
             checktext2, on_response_ok=on_ok, on_response_cancel=on_cancel,
             is_modal=False)
 
-    def handle_event_pubsub_node_removed(self, account, data):
-        # ('PUBSUB_NODE_REMOVED', account, (jid, node))
-        if 'pep_services' in self.instances[account]:
-            if data[0] == gajim.get_jid_from_account(account):
-                self.instances[account]['pep_services'].node_removed(data[1])
-
-    def handle_event_pubsub_node_not_removed(self, account, data):
-        # ('PUBSUB_NODE_NOT_REMOVED', account, (jid, node, msg))
-        if data[0] == gajim.get_jid_from_account(account):
-            dialogs.WarningDialog(_('PEP node was not removed'),
-                    _('PEP node %(node)s was not removed: %(message)s') % {
-                    'node': data[1], 'message': data[2]})
-
     def handle_event_pep_received(self, account, data):
         # ('PEP_RECEIVED', account, (jid, pep_type))
         jid = data[0]
@@ -2188,9 +2175,6 @@ class Interface:
             'INSECURE_SSL_CONNECTION': \
                 [self.handle_event_insecure_ssl_connection],
             'INSECURE_PASSWORD': [self.handle_event_insecure_password],
-            'PUBSUB_NODE_REMOVED': [self.handle_event_pubsub_node_removed],
-            'PUBSUB_NODE_NOT_REMOVED': \
-                [self.handle_event_pubsub_node_not_removed],
             'JINGLE_INCOMING': [self.handle_event_jingle_incoming],
             'JINGLE_CONNECTED': [self.handle_event_jingle_connected],
             'JINGLE_DISCONNECTED': [self.handle_event_jingle_disconnected],