   "Indent the current line according to `go-mode-indentation'."
   (interactive)
 
-  (let ((col (go-mode-indentation)))
-    (when col
-      (let ((offset (- (current-column) (current-indentation))))
-        (indent-line-to col)
-        (when (> offset 0)
-          (forward-char offset))))))
+  ;; turn off case folding to distinguish keywords from identifiers
+  ;; e.g. "default" is a keyword; "Default" can be a variable name.
+  (let ((case-fold-search nil))
+    (let ((col (go-mode-indentation)))
+      (when col
+	(let ((offset (- (current-column) (current-indentation))))
+	  (indent-line-to col)
+	  (when (> offset 0)
+	    (forward-char offset)))))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Go mode

  (let ((m (make-sparse-keymap)))
    (define-key m "}" #'go-mode-insert-and-indent)
    (define-key m ")" #'go-mode-insert-and-indent)
    (define-key m ":" #'go-mode-delayed-electric)
    ;; In case we get : indentation wrong, correct ourselves
    (define-key m "=" #'go-mode-insert-and-indent)

          (when (looking-at "\\<case\\>\\|\\<default\\>\\|\\w+\\s *:\\(\\S.\\|$\\)")
            (decf indent tab-width))

	  (when (looking-at "\\w+\\s *:.+,\\s *$")
	    (incf indent tab-width))

          ;; Continuation lines are indented 1 level
          (beginning-of-line)		; back up to end of previous line
	  (backward-char)
          (go-mode-backward-skip-comments) ; back up past any comments
          (when (case (char-before)
                  ((nil ?\{ ?:)
                   ;; At the beginning of a block or the statement
