diff --git a/cmd/gomobile/env.go b/cmd/gomobile/env.go
index 5a523fe..ccdff9b 100644
--- a/cmd/gomobile/env.go
+++ b/cmd/gomobile/env.go
@@ -4,6 +4,7 @@
 	"errors"
 	"fmt"
 	"io/ioutil"
+	"log"
 	"os"
 	"os/exec"
 	"path/filepath"
@@ -46,10 +47,6 @@
 		return nil, errors.New("toolchain not installed, run `gomobile init`")
 	}
 
-	if err := envInit(); err != nil {
-		return nil, err
-	}
-
 	cleanupFn := func() {
 		if buildWork {
 			fmt.Printf("WORK=%s\n", tmpdir)
@@ -70,6 +67,10 @@
 		fmt.Fprintln(xout, "WORK="+tmpdir)
 	}
 
+	if err := envInit(); err != nil {
+		return nil, err
+	}
+
 	return cleanupFn, nil
 }
 
@@ -269,6 +270,9 @@
 	var pref string
 	switch toolName {
 	case "clang", "clang++":
+		if runtime.GOOS == "windows" {
+			return tc.createNDKr19bWorkaroundTool(ndkRoot, toolName)
+		}
 		pref = tc.clangPrefix
 	default:
 		pref = tc.toolPrefix
@@ -276,6 +280,31 @@
 	return filepath.Join(ndkRoot, "toolchains", "llvm", "prebuilt", archNDK(), "bin", pref+"-"+toolName)
 }
 
+// createNDKr19bWorkaroundTool creates a Windows wrapper script for clang or clang++.
+// The scripts included in r19b are broken on Windows: https://github.com/android-ndk/ndk/issues/920.
+// TODO: Remove this when r19c is out; the code inside is hacky and panicky.
+func (tc *ndkToolchain) createNDKr19bWorkaroundTool(ndkRoot, toolName string) string {
+	toolCmd := filepath.Join(tmpdir, fmt.Sprintf("%s-%s.cmd", tc.arch, toolName))
+	tool, err := os.Create(toolCmd)
+	if err != nil {
+		log.Fatal(err)
+	}
+	defer func() {
+		if err := tool.Close(); err != nil {
+			log.Fatal(err)
+		}
+	}()
+	tcBin := filepath.Join(ndkRoot, "toolchains", "llvm", "prebuilt", archNDK(), "bin")
+	// Adapted from the NDK cmd wrappers.
+	toolCmdContent := fmt.Sprintf(`@echo off
+set _BIN_DIR=%s\
+%%_BIN_DIR%%%s.exe --target=%s -fno-addrsig %%*"`, tcBin, toolName, tc.clangPrefix)
+	if _, err = tool.Write([]byte(toolCmdContent)); err != nil {
+		log.Fatal(err)
+	}
+	return toolCmd
+}
+
 type ndkConfig map[string]ndkToolchain // map: GOOS->androidConfig.
 
 func (nc ndkConfig) Toolchain(arch string) ndkToolchain {
