Neither XEmacs 21.4 nor 21.5 can find a module in the system module
directory.  The way that the Makefiles are set up now, that is
${libdir}/${instvardir}/${configuration}/modules (e.g., on my system,
that is /usr/local/lib/xemacs-21.5-b6/i686-pc-linux/modules).
However, module-load-path is set in dump-paths.el by evaluating
(paths-find-module-directory roots).  That function is defined in
setup-paths.el with this body:
(paths-find-architecture-directory roots "modules"
                                   nil configure-module-directory)
However, that function evaluates to
${libdir}/${instvardir}/${configuration}; i.e., it is missing the final
"/modules" component, causing XEmacs to fail to see modules in that
directory.  The immediate problem is that
paths-find-architecture-directory, defined in find-paths.el, doesn't
look for the right combination of "base" and "system-configuration". 
In
fact, the first test looks plain wrong.  It is
(paths-find-version-directory roots
                              (concat base system-configuration)
                              envvar default)
But since neither "base" nor "system-configuration" contain a
"/"
character, concatenating them does not seem useful.  Furthermore, the
system-configuration should contain the base, not the other way around,
given the way the paths are set up currently.  So shouldn't that first
test be
(paths-find-version-directory roots
                              (paths-construct-path
                               (list system-configuration base)
                              envvar default)
instead?  That works for the system module case.  Does it break anything
else?
-- 
Jerry James <james(a)xemacs.org>