diff --git a/src/os/getwd.go b/src/os/getwd.go
index 90604cf2f4b18e57a04cdcf5f559b61a0ef0be3e..64c3c4acd7e02e77c0421d641c1a6b7f3d5374bc 100644
--- a/src/os/getwd.go
+++ b/src/os/getwd.go
@@ -21,7 +21,8 @@ var getwdCache struct {
 // Getwd may return any one of them.
 func Getwd() (dir string, err error) {
 	if runtime.GOOS == "windows" || runtime.GOOS == "plan9" {
-		return syscall.Getwd()
+		dir, err = syscall.Getwd()
+		return dir, NewSyscallError("getwd", err)
 	}
 
 	// Clumsy but widespread kludge: