anchor.diff:  (defun open-urls (urls &key no-focus)
     "Create new buffers from URLs.
   First URL is focused if NO-FOCUS is nil."
  -  (let ((first-buffer (first (mapcar
  -                              (lambda (url)
  -                                (let ((buffer (make-buffer)))
  -                                  (set-url url :buffer buffer)
  -                                  buffer))
  -                              urls))))
  -    (unless no-focus
  +  (let ((first-buffer
  +         (first (mapcar
  +                 (lambda (url)
  +                   (let ((buffer (make-buffer)))
  +                     (if buffer
  +                         (progn
  +                           (set-url url :buffer buffer)
  +                           buffer)
  +                         (log:error "Could not create buffer, is the platform port running?"))))
  +                 urls))))
  +    (unless (or (null first-buffer)) no-focus
         (if (open-external-link-in-new-window-p *interface*)
             (let ((window (rpc-window-make)))
               (window-set-active-buffer window first-buffer))
  
positive.code: 
  (declaim (ftype (function (string &rest t)) %rpc-send))
  (defun %rpc-send (method &rest args)
    ;; TODO: Make %rpc-send asynchronous?
    ;; If the platform port ever hangs, the next %rpc-send will hang the Lisp core too.
    ;; TODO: Catch connection errors and execution errors.
    (handler-case
        (dbus:with-open-bus (bus (session-server-addresses))
          (dbus:with-introspected-object (platform-port bus +platform-port-object-path+ +platform-port-name+)
            (apply #'platform-port +platform-port-interface+ method args)))
      (error (c)
        (log:error "RPC connection failed: ~a" c))))
  
  ;; TODO: Move to separate packages:
  ;; - next-rpc
  
negative.code: (defun rpc-buffer-make (&key title default-modes dead-buffer)
    "Make buffer with title TITLE and modes DEFAULT-MODES.
  Run `*interface*'s `buffer-make-hook' over the created buffer before returning it.
  If DEAD-BUFFER is a dead buffer, recreate its web view and give it a new ID.
  Return nil on error."
    (let* ((buffer (if dead-buffer
                       (progn (setf (id dead-buffer) (get-unique-buffer-identifier))
                              dead-buffer)
  