diff --git a/km3buu/ctrl.py b/km3buu/ctrl.py
index d696530dec1c1f3c5c18be24d1c0fa55c9c94af3..2892f2a1bf42cd3d3fb41aa4e2125f4cd28c8033 100644
--- a/km3buu/ctrl.py
+++ b/km3buu/ctrl.py
@@ -13,6 +13,7 @@ __email__ = "jschumann@km3net.de"
 __status__ = "Development"
 
 from shutil import copy
+import subprocess
 from spython.main import Client
 from os.path import join, abspath, basename, isdir, isfile
 from tempfile import NamedTemporaryFile, TemporaryDirectory
@@ -47,7 +48,7 @@ $CONTAINER_GIBUU_EXEC < {1};
 """
 
 
-def run_jobcard(jobcard, outdir):
+def run_jobcard(jobcard, outdir, container=False):
     """
     Method for run
 
@@ -58,6 +59,8 @@ def run_jobcard(jobcard, outdir):
         of a jobcard object or a path to a jobcard
     outdir: str 
         The path to the directory the output should be written to.
+    container: boolean
+        Call GiBUU inside container environment
     """
     input_dir = TemporaryDirectory()
     outdir = abspath(outdir)
@@ -80,23 +83,29 @@ def run_jobcard(jobcard, outdir):
         jobcard["neutrino_induced"]["FileNameflux"] = tmp_fluxfile
     with open(jobcard_fpath, "w") as f:
         f.write(str(jobcard))
-    log.info("Create temporary file for associated runscript")
-    script_fpath = join(input_dir.name, "run.sh")
-    with open(script_fpath, "w") as f:
-        ctnt = GIBUU_SHELL.format(outdir, jobcard_fpath)
-        f.write(ctnt)
-    output = Client.execute(
-        Config().gibuu_image_path,
-        ["/bin/sh", script_fpath],
-        bind=[outdir, input_dir.name],
-        return_result=True,
-    )
-    with open(join(outdir, jobcard.filename), "w") as f:
-        f.write(str(jobcard))
-    msg = output["message"]
-    if isinstance(msg, str):
-        log.info("GiBUU output:\n %s" % msg)
+    if container:
+        log.info("Create temporary file for associated runscript")
+        script_fpath = join(input_dir.name, "run.sh")
+        with open(script_fpath, "w") as f:
+            ctnt = GIBUU_SHELL.format(outdir, jobcard_fpath)
+            f.write(ctnt)
+        output = Client.execute(
+            Config().gibuu_image_path,
+            ["/bin/sh", script_fpath],
+            bind=[outdir, input_dir.name],
+            return_result=True,
+        )
+        with open(join(outdir, jobcard.filename), "w") as f:
+            f.write(str(jobcard))
+        msg = output["message"]
+        if isinstance(msg, str):
+            log.info("GiBUU output:\n %s" % msg)
+        else:
+            log.info("GiBUU output:\n %s" % msg[0])
+            log.error("GiBUU stacktrace:\n%s" % msg[1])
+        return output["return_code"]
     else:
-        log.info("GiBUU output:\n %s" % msg[0])
-        log.error("GiBUU stacktrace:\n%s" % msg[1])
-    return output["return_code"]
+        p = subprocess.Popen(
+            [os.environ["CONTAINER_GIBUU_EXEC"], "<", jobcard_fpath],
+            cwd=outdir)
+        return p.wait()