diff --git a/lib/modules/core/core_test.go b/lib/modules/core/core_test.go
index 09dc291..14ab572 100644
--- a/lib/modules/core/core_test.go
+++ b/lib/modules/core/core_test.go
@@ -200,7 +200,7 @@
 func TestExec(t *testing.T) {
 	sh, cleanup := newShell(t)
 	defer cleanup()
-	h, err := sh.Start(core.ExecCommand, nil, []string{"echo", "-n", "hello world"}...)
+	h, err := sh.Start(core.ExecCommand, nil, []string{"/bin/sh", "-c", "echo -n hello world"}...)
 	if err != nil {
 		t.Fatalf("unexpected error: %s", err)
 	}
@@ -216,7 +216,7 @@
 func TestExecWithEnv(t *testing.T) {
 	sh, cleanup := newShell(t)
 	defer cleanup()
-	h, err := sh.Start(core.ExecCommand, []string{"BLAH=hello world"}, "printenv", "BLAH")
+	h, err := sh.Start(core.ExecCommand, []string{"BLAH=hello world"}, "/bin/sh", "-c", "printenv BLAH")
 	if err != nil {
 		t.Fatalf("unexpected error: %s", err)
 	}
diff --git a/lib/modules/core/exec.go b/lib/modules/core/exec.go
index d0e5556..be41d0d 100644
--- a/lib/modules/core/exec.go
+++ b/lib/modules/core/exec.go
@@ -2,7 +2,7 @@
 
 import (
 	"io"
-	"os/exec"
+	"syscall"
 
 	"v.io/core/veyron/lib/modules"
 )
@@ -12,15 +12,9 @@
 }
 
 func execCommand(stdin io.Reader, stdout, stderr io.Writer, env map[string]string, args ...string) error {
-	cmd := exec.Command(args[1], args[2:]...)
 	envSlice := []string{}
 	for key, value := range env {
 		envSlice = append(envSlice, key+"="+value)
 	}
-
-	cmd.Env = envSlice
-	cmd.Stdin = stdin
-	cmd.Stdout = stdout
-	cmd.Stderr = stderr
-	return cmd.Run()
+	return syscall.Exec(args[1], args[1:], envSlice)
 }
