   (unless ros-messages
     (cache-ros-message-locations))
   (let* ((ros-messages-list (map 'list 'identity ros-messages))
-         (result (funcall ros-completion-function prompt
+         (result (funcall ros-completion-function
+                          (concatenate 'string prompt
+                                       (if (member default ros-messages-list)
+                                           (format " (default %s): " default)
+                                         ": "))
                           (map 'list (lambda (m pkg)
                                        (if (> (count m ros-messages-list :test 'equal) 1)
                                            (format "%s (%s)" m pkg)

(defun find-ros-message (message)
  "Open definition of a ros message.  If used interactively, tab completion will work."
  (interactive (list (ros-completing-read-message
                      (if (current-word t t)
                          (format "Enter message name (default %s): " (current-word t t))
                        "Enter message name: ")
                      (current-word t t))))
  (let* ((p+m (split-string message "/"))
         (p (if (cdr p+m)

(defun find-ros-action (action)
  "Open definition of a ros action.  If used interactively, tab completion will work."
  (interactive (list (ros-completing-read-action
                      "Enter action name"
                      (current-word t t))))
  (let* ((p+m (split-string action "/"))
         (p (if (cdr p+m)
