diff --git a/share/spack/csh/spack.csh b/share/spack/csh/spack.csh
index afda7762be78fe5063e978bc02e3492ca5d9f0c4..01be6165724860e82b07153bdce6939f0231ce2e 100644
--- a/share/spack/csh/spack.csh
+++ b/share/spack/csh/spack.csh
@@ -132,7 +132,12 @@ case unload:
             endif
             breaksw
         case "load":
-            set _sp_full_spec = ( "`\spack $_sp_flags module tcl find $_sp_spec`" )
+            # _sp_module_args may be "-r" for recursive spec retrieval
+            set _sp_full_spec = ( "`\spack $_sp_flags module tcl find $_sp_module_args $_sp_spec`" )
+            if ( "$_sp_module_args" == "-r" ) then
+                # module load can handle the list of modules to load and "-r" is not a valid option
+                set _sp_module_args = ""
+            endif
             if ( $? == 0 ) then
                 module load $_sp_module_args $_sp_full_spec
             endif