                                nil nil default)))
      (list module prefix)))
   (message "Pymacs loading %s..." module)
-  (let ((lisp-code (pymacs-call "pymacs_load_helper" module prefix noerror)))
+  (let ((lisp-code (pymacs-call "pymacs_load_helper" module prefix)))
     (cond (lisp-code (let ((result (eval lisp-code)))
-                       (add-to-list 'pymacs-load-history
-                                    (list module prefix noerror)
-                                    ;; append so that order is kept
-                                    'append)
                        (message "Pymacs loading %s...done" module)
-                       (run-hook-with-args 'pymacs-after-load-functions module)
                        result))
-          (noerror (message "Pymacs loading %s...failed" module) nil))))
+          (noerror (message "Pymacs loading %s...failed" module) nil)
+          (t (pymacs-report-error "Pymacs loading %s...failed" module)))))
 
 ;;;###autoload
 (defun pymacs-autoload (function module &optional prefix docstring interactive)

                              (encode-coding-string expression 'utf-8)
                            (copy-sequence expression))))
               (set-text-properties 0 (length text) nil text)
               (when multibyte
                 (princ "b"))
               (princ (mapconcat 'identity
                                 (split-string (prin1-to-string text) "\n")
                                 "\\n"))

(defvar pymacs-dreadful-zombies nil
  "If zombies should trigger hard errors, whenever they get called.
If `nil', calling a zombie will merely produce a diagnostic message.")

;;;###autoload
(defun pymacs-load (module &optional prefix noerror)
