diff --git a/src/crypto/x509/sha2_windows_test.go b/src/crypto/x509/sha2_windows_test.go
index 02dd077..79dc685 100644
--- a/src/crypto/x509/sha2_windows_test.go
+++ b/src/crypto/x509/sha2_windows_test.go
@@ -4,10 +4,14 @@
 
 package x509
 
-import "internal/syscall/windows"
+import "syscall"
 
 func init() {
-	if major, _ := windows.GetVersion(); major < 6 {
+	v, err := syscall.GetVersion()
+	if err != nil {
+		return
+	}
+	if major := byte(v); major < 6 {
 		// Windows XP SP2 and Windows 2003 do not support SHA2.
 		// http://blogs.technet.com/b/pki/archive/2010/09/30/sha2-and-windows.aspx
 		supportSHA2 = false
diff --git a/src/internal/syscall/windows/syscall_windows.go b/src/internal/syscall/windows/syscall_windows.go
index 28aa13b..49bfeea 100644
--- a/src/internal/syscall/windows/syscall_windows.go
+++ b/src/internal/syscall/windows/syscall_windows.go
@@ -97,7 +97,6 @@
 //sys GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizeOfPointer *uint32) (errcode error) = iphlpapi.GetAdaptersAddresses
 
 //sys	GetComputerNameEx(nameformat uint32, buf *uint16, n *uint32) (err error) = GetComputerNameExW
-//sys	getVersion() (v uint32) = GetVersion
 
 const (
 	ComputerNameNetBIOS                   = 0
@@ -110,8 +109,3 @@
 	ComputerNamePhysicalDnsFullyQualified = 7
 	ComputerNameMax                       = 8
 )
-
-func GetVersion() (major, minor byte) {
-	low := uint16(getVersion())
-	return byte(low), byte(low >> 8)
-}
diff --git a/src/internal/syscall/windows/zsyscall_windows.go b/src/internal/syscall/windows/zsyscall_windows.go
index bff2421..50c7c51 100644
--- a/src/internal/syscall/windows/zsyscall_windows.go
+++ b/src/internal/syscall/windows/zsyscall_windows.go
@@ -13,7 +13,6 @@
 
 	procGetAdaptersAddresses = modiphlpapi.NewProc("GetAdaptersAddresses")
 	procGetComputerNameExW   = modkernel32.NewProc("GetComputerNameExW")
-	procGetVersion           = modkernel32.NewProc("GetVersion")
 )
 
 func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizeOfPointer *uint32) (errcode error) {
@@ -35,9 +34,3 @@
 	}
 	return
 }
-
-func getVersion() (v uint32) {
-	r0, _, _ := syscall.Syscall(procGetVersion.Addr(), 0, 0, 0, 0)
-	v = uint32(r0)
-	return
-}
