       (let ((type-info (shm-node-type-info current)))
         (if type-info
             (shm-present-type-info current type-info)
-          (if shm-type-info-fallback-to-ghci
+          (if (and shm-type-info-fallback-to-ghci
+                   (fboundp 'haskell-process-do-type))
               (haskell-process-do-type)
             (error "Unable to get type information for that node.")))))
      ((and (string= (shm-node-type-name current) "Name")



;; Internal mode functions

(defun shm-mode-start ()

  "Insert a space but sometimes do something more clever, like
  inserting skeletons."
  (interactive)
  (if (and (bound-and-true-p god-local-mode)
           (fboundp 'god-mode-self-insert))
      (god-mode-self-insert)
    (cond
     ((shm-in-comment)
