diff --git a/etc/bashrc b/etc/bashrc
index c6aa4608469b6b27921ec25b757398dee51069ac..8bbc1b2c2dd3e61034e9effe924e1509152cd954 100644
--- a/etc/bashrc
+++ b/etc/bashrc
@@ -101,6 +101,15 @@ do
         # name=value  -> export name=value
         eval "export $1"
         ;;
+    *)
+        # filename: source it
+        if [ -f "$1" ]
+        then
+            _foamSource "$1"
+        else
+            _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile "$1"`
+        fi
+        ;;
     esac
     shift
 done
diff --git a/etc/cshrc b/etc/cshrc
index 25628ab4072c61e51d9c6e731619876986ed9f09..719a211f5327afcba862ccac9b8ba643d98c312a 100644
--- a/etc/cshrc
+++ b/etc/cshrc
@@ -85,6 +85,14 @@ while ( $#argv > 0 )
         # name=value  -> setenv name value
         eval "setenv $argv[1]:s/=/ /"
         breaksw
+    default:
+        # filename: source it
+        if ( -f "$1" ) then
+            _foamSource "$1"
+        else
+            _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile "$1"`
+        endif
+        breaksw
     endsw
     shift
 end