diff --git a/src/builder/b-nspawn.c b/src/builder/b-nspawn.c
index 70612b4..70a6404 100644
--- a/src/builder/b-nspawn.c
+++ b/src/builder/b-nspawn.c
@@ -232,7 +232,7 @@ static const char * const runscript =
"set SAI_LOGPROXY_TTY0=%s\n"
"set SAI_LOGPROXY_TTY1=%s\n"
"set HOME=%s\n"
- "cd %s\\jobs\\%s\\%s &&"
+ "cd %s &&"
" rmdir /s /q build & "
"%s"
;
@@ -326,8 +326,7 @@ saib_spawn(struct sai_nspawn *ns)
n = lws_snprintf(st, sizeof(st), runscript, ns->instance_idx,
respath, ns->slp_control.sockpath,
ns->slp[0].sockpath, ns->slp[1].sockpath, builder.home,
- builder.home, ns->fsm.ovname, ns->project_name,
- ns->task->build);
+ ns->inp, ns->task->build);
#else
n = lws_snprintf(st, sizeof(st), runscript, builder.home, ns->fsm.ovname,
ns->project_name, ns->ref, ns->instance_idx,
diff --git a/src/builder/b-task.c b/src/builder/b-task.c
index e479f18..65979b5 100644
--- a/src/builder/b-task.c
+++ b/src/builder/b-task.c
@@ -619,6 +619,14 @@ saib_ws_json_rx_builder(struct sai_plat_server *spm, const void *in, size_t len)
if (mkdir(ns->inp, 0755) && errno != EEXIST)
goto ebail;
+#if defined(WIN32)
+ n += lws_snprintf(ns->inp + n, sizeof(ns->inp) - (unsigned int)n, "1%c",
+ csep);
+ lws_filename_purify_inplace(ns->inp);
+ if (mkdir(ns->inp, 0755) && errno != EEXIST)
+ goto ebail;
+#endif
+
n += lws_snprintf(ns->inp + n, sizeof(ns->inp) - (unsigned int)n, "%s%c",
ns->project_name, csep);
lws_filename_purify_inplace(ns->inp);