           (let ((md (match-data)))
             (cond
              ((string= decl "var")
-              (setf (nth 4 md) nil (nth 5 md) nil (nth 6 md) nil (nth 7 md) nil))
+              (setf (nth 4 md) nil (nth 5 md) nil (nth 6 md) nil (nth 7 md) nil)
+              (when (not go-fontify-variables)
+                (setf (nth 2 md) nil (nth 3 md) nil)))
              ((string= decl "const")
               (setf (nth 2 md) nil (nth 3 md) nil (nth 6 md) nil (nth 7 md) nil))
              ((string= decl "type")
               (setf (nth 2 md) nil (nth 3 md) nil (nth 4 md) nil (nth 5 md) nil)))
             (set-match-data md)))
 
-         (t
+         (go-fontify-variables
           (save-match-data
             ;; Left side of ":=" assignmnet.
             (when (looking-at ".*:=")

     ;; Match variable names in var decls, constant names in const
     ;; decls, and type names in type decls.
     (go--match-decl
      (1 ,(if go-fontify-variables 'font-lock-variable-name-face 'go--default-face) nil t)
      (2 font-lock-constant-face nil t)
      (3 font-lock-type-face nil t))


    st)
  "Syntax table for Go mode.")

(defun go--fontify-type-switch-case-pre ()
  "Move point to line following the end of case statement.

