 parameter."
   (interactive (progn (grep-compute-defaults)
                       (let ((package (ros-completing-read-package
-                                      nil (unless (eq ros-buffer-package :none)
-                                            ros-buffer-package)))
+                                      nil (get-buffer-ros-package)))
                             (regexp (grep-read-regexp)))
                         (list
                          package

    (when fn
      (ros-package-for-path fn))))

(defun ros-current-pkg-modeline-entry ()
  (let ((pkg (or ros-buffer-package (ros-package-for-buffer (current-buffer)))))
    (unless ros-buffer-package
      (if pkg

(defun ros-run (pkg exec &rest args)
  "pkg is a ros package name and exec is the executable name.  Tab completes package name.  Exec defaults to package name itself."
  (interactive (list (setq ros-run-temp-var (ros-completing-read-package
                                             nil (get-buffer-ros-package)))
                     (funcall ros-completion-function (format "Enter executable (default %s): " ros-run-temp-var)
                              (mapcar (lambda (pkg)
                                        (cons pkg nil))
