Just tried again, doesn't work:

```diff
diff --git a/easybuild/tools/modules.py b/easybuild/tools/modules.py
index 8df6e0d..6c75751 100644
--- a/easybuild/tools/modules.py
+++ b/easybuild/tools/modules.py
@@ -378,11 +378,14 @@ class ModulesTool(object):
 
         # prefix if a particular shell is specified, using shell argument to Popen doesn't work (no output produced (?))
         cmdlist = [self.cmd, 'python']
-        if self.shell is not None:
-            cmdlist.insert(0, self.shell)
+        #if self.shell is not None:
+        #    cmdlist.insert(0, self.shell)
 
         self.log.debug("Running module command '%s' from %s" % (' '.join(cmdlist + args), os.getcwd()))
-        proc = subprocess.Popen(cmdlist + args, stdout=PIPE, stderr=PIPE, env=environ)
+        if self.shell is not None:
+            proc = subprocess.Popen(cmdlist + args, stdout=PIPE, stderr=PIPE, env=environ, shell=self.shell)
+        else:
+            proc = subprocess.Popen(cmdlist + args, stdout=PIPE, stderr=PIPE, env=environ)
         # stdout will contain python code (to change environment etc)
         # stderr will contain text (just like the normal module command)
         (stdout, stderr) = proc.communicate()
```
```
$ python -m test.framework.modules
FF..FE
======================================================================
ERROR: test_purge (__main__.ModulesTest)
Test if purging of modules works.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/kehoste/work/easybuild-framework/test/framework/modules.py", line 164, in test_purge
    self.testmods.load([ms[0]])
IndexError: list index out of range

======================================================================
FAIL: test_avail (__main__.ModulesTest)
Test if getting a (restricted) list of available modules works.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/kehoste/work/easybuild-framework/test/framework/modules.py", line 102, in test_avail
    self.assertEqual(ms, ['GCC/4.6.3', 'GCC/4.6.4', 'GCC/4.7.2'])
AssertionError: Lists differ: [] != ['GCC/4.6.3', 'GCC/4.6.4', 'GC...

Second list contains 3 additional elements.
First extra element 0:
GCC/4.6.3

- []
+ ['GCC/4.6.3', 'GCC/4.6.4', 'GCC/4.7.2']

======================================================================
FAIL: test_exists (__main__.ModulesTest)
Test if testing for module existence works.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/kehoste/work/easybuild-framework/test/framework/modules.py", line 115, in test_exists
    self.assertTrue(self.testmods.exists('OpenMPI/1.6.4-GCC-4.6.4'))
AssertionError: False is not True

======================================================================
FAIL: test_long_module_path (__main__.ModulesTest)
Test dealing with a (very) long module path.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/kehoste/work/easybuild-framework/test/framework/modules.py", line 92, in test_long_module_path
    self.assertEqual(ms, ['GCC/4.6.3'])
AssertionError: Lists differ: [] != ['GCC/4.6.3']

Second list contains 1 additional elements.
First extra element 0:
GCC/4.6.3

- []
+ ['GCC/4.6.3']

----------------------------------------------------------------------
Ran 6 tests in 0.830s

FAILED (failures=3, errors=1)
```