                   (company-ycmd--prefix-candidate-p candidate prefix))
           (if function-signatures
               (dolist (meta (delete-dups function-signatures))
-                (push (company-ycmd--construct-candidate candidate meta)
+                (push (company-ycmd--construct-candidate candidate prefix start-col meta)
                       candidates))
-            (push (company-ycmd--construct-candidate candidate)
+            (push (company-ycmd--construct-candidate candidate prefix start-col)
                   candidates)))))))
 
-(defun company-ycmd--construct-candidate (src &optional meta)
+(defun company-ycmd--construct-candidate (src prefix start-col &optional meta)
   "Convert a ycmd completion structure SRC to a candidate string.
 
 META is a string containig the function signature and is used to

           (company-ycmd--in-include))
       (or (and (not (ycmd-parsing-in-progress-p))
                (company-grab-symbol-cons "\\.\\|->\\|::" 2))
           'stop)))

(defun company-ycmd--candidates (prefix)

        (case-fold-search t))
    (equal (string-match (regexp-quote prefix) insertion-text) 0)))

(defun company-ycmd--construct-candidates (start-col
					   completion-vector
					   prefix)
  "Contruct candidates list from COMPLETION-VECTOR.

PREFIX is the prefix we calculated for doing the completion, and
START-COL is the column on which ycmd indicates we should place
the completion candidates.

When `company-ycmd-enable-fuzzy-matching' is nil, check if
candidate starts with PREFIX, whether to include candidate in
