diff --git a/src/libloom/tasks/runtask.cpp b/src/libloom/tasks/runtask.cpp
index 277a97694a8f1defc911c6a22b1f5469d7b1e4fc..5a3198c16c3c150200f5d95f6346b64d2b8c7085 100644
--- a/src/libloom/tasks/runtask.cpp
+++ b/src/libloom/tasks/runtask.cpp
@@ -67,8 +67,13 @@ void RunTask::start(DataVector &inputs)
       std::string path = get_path(name);
       std::string filename = inputs[i]->get_filename();
       assert(!filename.empty());
-      llog->debug("Creating symlink of '{}' for input id={} filename={}",
-                  msg.map_inputs(i), task->get_inputs()[i], filename);
+      if (!task->get_inputs().empty()) {
+        llog->debug("Creating symlink of '{}' for input id={} filename={}",
+                    msg.map_inputs(i), task->get_inputs()[i], filename);
+      } else {
+          llog->debug("Creating symlink of '{}' for filename={}",
+                      msg.map_inputs(i), filename);
+      }
       if (symlink(filename.c_str(), path.c_str())) {
          log_errno_abort("symlink");
       }
diff --git a/tests/client/py_test.py b/tests/client/py_test.py
index 967f0b205262d16a238789fd0828335aa6037a03..c63342830412e9ef0f550060f8b123dcdd058706 100644
--- a/tests/client/py_test.py
+++ b/tests/client/py_test.py
@@ -74,6 +74,20 @@ def test_py_redirect2(loom_env):
     assert b"usr\n" in result
 
 
+def test_py_redirect3(loom_env):
+
+    def f(a):
+        return tasks.run("cat X", [(a, "X")])
+
+    loom_env.start(1)
+
+    c = tasks.const("DataData")
+    a = tasks.py_call(f, (c,))
+    result = loom_env.submit(a)
+    assert b"DataData" in result
+
+
+
 def test_py_fail_too_many_args(loom_env):
 
     def g():