diff --git a/share/spack/setup-env.sh b/share/spack/setup-env.sh
index 764af684001706f9240319c6a1b054494aae2762..529517ff834c77a196f10c21603ca6bd8f6fdbaa 100755
--- a/share/spack/setup-env.sh
+++ b/share/spack/setup-env.sh
@@ -176,3 +176,13 @@ _spack_pathadd PATH       "${_sp_prefix%/}/bin"
 _sp_sys_type=$(spack-python -c 'print(spack.architecture.sys_type())')
 _spack_pathadd DK_NODE    "${_sp_share_dir%/}/dotkit/$_sp_sys_type"
 _spack_pathadd MODULEPATH "${_sp_share_dir%/}/modules/$_sp_sys_type"
+
+#
+# Use spack built modules package if available
+# for system that does not have it
+#
+
+_modules_install_path=$(command spack location -i modules)
+if [ -n "$_modules_install_path" ] ; then
+    . $_modules_install_path/Modules/init/sh
+fi
diff --git a/var/spack/repos/builtin/packages/modules/package.py b/var/spack/repos/builtin/packages/modules/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..b014ee460c23d6778d1373a9abdda65d4298aa89
--- /dev/null
+++ b/var/spack/repos/builtin/packages/modules/package.py
@@ -0,0 +1,25 @@
+from spack import *
+
+class Modules(Package):
+    """ The Environment Modules package provides for the dynamic modification of a user's environment via modulefiles. """
+
+    homepage = "http://modules.sf.net"
+    url      = "http://downloads.sourceforge.net/project/modules/Modules/modules-3.2.10/modules-3.2.10.tar.gz"
+
+    version('3.2.10', '8b097fdcb90c514d7540bb55a3cb90fb')
+
+    depends_on("tcl")
+
+    def install(self, spec, prefix):
+
+	options = ['--prefix=%s' % prefix, 
+                   '--disable-debug',
+                   '--disable-dependency-tracking',
+                   '--disable-silent-rules',
+                   '--disable-versioning', 
+                   '--datarootdir=%s' % prefix.share,
+                   'CPPFLAGS=-DUSE_INTERP_ERRORLINE']
+
+        configure(*options)
+        make()
+        make("install")