diff --git a/edosl0util/cli/rdrmerge.py b/edosl0util/cli/rdrmerge.py
index 6e17540e53e8bfffe6072e3032130bd32f428926..89e421d818de054138e5329047a990b3175539a0 100644
--- a/edosl0util/cli/rdrmerge.py
+++ b/edosl0util/cli/rdrmerge.py
@@ -20,6 +20,12 @@ from .util import configure_logging
 LOG = logging.getLogger("edosl0util.cli.rdrmerge")
 
 
+@contextmanager
+def working_directory(workdir, **kwds):
+    os.chdir(workdir)
+    yield workdir
+
+
 # py2 compat
 @contextmanager
 def TemporaryDirectory(**kwds):
@@ -94,15 +100,20 @@ start_of_mission = {
 }
 
 
-def merge_rdrs(inputs, not_before=None, not_after=None):
+def merge_rdrs(inputs, not_before=None, not_after=None, workdir=None):
     to_process = rdrs_to_process(inputs)
 
+    if workdir is not None:
+        workdir = working_directory(workdir)
+    else:
+        workdir = TemporaryDirectory(os.getcwd())
+
     # do each set of files separately to handle case where different products
     # are provided
     outputs = []
     for (sat, product), rdrs in to_process.items():
         LOG.info("handling %d files for %s %s", len(rdrs), sat, product)
-        with TemporaryDirectory(dir=os.getcwd()) as tmpdir:
+        with workdir as tmpdir:
             # extract RDRs separately, name them after RDR
             pds = []
             for fpath in rdrs:
@@ -139,7 +150,7 @@ def main():
             "%Y-%m-%dT%H:%M:%SZ",
             "%Y-%m-%dT%H:%M:%S",
             "%Y-%m-%d %H:%M:%S",
-            "%Y-%m-%d"
+            "%Y-%m-%d",
         ]:
             try:
                 return datetime.strptime(v, fmt)
@@ -148,6 +159,7 @@ def main():
 
     parser = argparse.ArgumentParser()
     parser.add_argument("-v", "--verbose", action="store_true")
+    parser.add_argument("--workdir", help="Working directory. Not cleaned up.")
     parser.add_argument(
         "--not-before",
         type=timestamp,
@@ -164,7 +176,7 @@ def main():
     if not args.rdr:
         parser.exit(1, "no RDR's provided")
 
-    for o in merge_rdrs(args.rdr, not_before=args.not_before):
+    for o in merge_rdrs(args.rdr, not_before=args.not_before, workdir=args.workdir):
         LOG.info("created %s", o)