     (unless (hash-table-p *pjs-buffers-class-members-cache-regexp*)
       (setq *pjs-buffers-class-members-cache-regexp* (make-hash-table :test 'equal)))
     
-    (while (re-search-forward *pjs-class-declaration-regexp* nil t)
+    (while (re-real-search-forward *pjs-class-declaration-regexp* nil t)
       ;; we are at the beginning of a class
       (let* ((class-name (match-string-no-properties 1))
 	     (namespace  (pjs-current-namespace))

;; return the current namespace 
(defun pjs-current-namespace ()
  (save-excursion
    (let* ((found (re-search-backward *pjs-namespace-definition* nil t))
	   (namespace (when found (match-string-no-properties 1))))
      (while (and found
		  (not (eq (get-text-property (point) 'face) 'font-lock-keyword-face)))
	(setq found (re-search-backward *pjs-namespace-definition* nil t))
	(when found
	  (setq namespace (match-string-no-properties 1))))
      (if found namespace "plw"))))
  


      ;; search backward from the start of the current line
      (goto-char point)
      (beginning-of-line)
      (while  (re-real-search-backward regexp nil t)
	(setq candidate (match-string-no-properties 1))
	(unless (or (member candidate candidates) (and already-matched (listp already-matched) (member candidate already-matched)))
	  (push (cons candidate (match-string-no-properties 0)) candidates)
