         else
             # Successfully done
             logger.debug "Operation #{opName} ran: #{inspect result}"
-            try
-                cb? null, result
-            catch e
-                logger.error e.stack or e
+
+            async.series [(cb2) ->
+                # May need to sync new nodes
+                if op.newNodes?
+                    async.forEach op.newNodes, (node, cb3) ->
+                        router.syncNode node, cb3
+                    , cb2
+                else
+                    cb2()
+            ], ->
+                # Ignore any sync result
+                try
+                    cb? null, result
+                catch e
+                    logger.error e.stack or e
 
             # Run notifications
             if (notification = op.notification?())

        , (cb2) ->
            # Memorize updates for notifications, same format:
            @notification = notification
            if newModerators.length > 0
                @newModerators = newModerators


                if update.type is 'subscription' and update.listener?
                    # Was successful remote subscription attempt
                    t.createNode update.node, (err, created) =>
                        if created
                            newNodes.push update.node
                        cb3 not err
                else
                    # Just an update, to be cached locally?
                    t.nodeExists update.node, (err, exists) ->
