Issue #17717: Pull NASM from svn.python.org for OpenSSL build.
diff --git a/Misc/NEWS b/Misc/NEWS
index 97bb398..b541e16 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -126,6 +126,9 @@
 Windows
 -------
 
+- Issue #17717: The Windows build scripts now use a copy of NASM pulled from
+  svn.python.org to build OpenSSL.
+
 - Issue #22644: The bundled version of OpenSSL has been updated to 1.0.1j.
 
 What's New in Python 3.4.2?
diff --git a/PCbuild/build_ssl.py b/PCbuild/build_ssl.py
index 260cbf3..f3c65fc 100644
--- a/PCbuild/build_ssl.py
+++ b/PCbuild/build_ssl.py
@@ -182,6 +182,17 @@
     if ssl_dir is None:
         sys.exit(1)
 
+    # add our copy of NASM to PATH.  It will be on the same level as openssl
+    for dir in os.listdir(os.path.join(ssl_dir, os.pardir)):
+        if dir.startswith('nasm'):
+            nasm_dir = os.path.join(ssl_dir, os.pardir, dir)
+            nasm_dir = os.path.abspath(nasm_dir)
+            os.environ['PATH'] += os.pathsep.join(['', nasm_dir])
+            break
+    else:
+        print('NASM was not found, make sure it is on PATH')
+
+
     old_cd = os.getcwd()
     try:
         os.chdir(ssl_dir)
diff --git a/PCbuild/readme.txt b/PCbuild/readme.txt
index 3a30bc8..2193c84 100644
--- a/PCbuild/readme.txt
+++ b/PCbuild/readme.txt
@@ -182,7 +182,9 @@
     to be somewhere on your PATH.  More recent versions of OpenSSL may
     need a later version of NASM. If OpenSSL's self tests don't pass,
     you should first try to update NASM and do a full rebuild of
-    OpenSSL.
+    OpenSSL.  If you use the Tools\buildbot\external(-amd64).bat method
+    for getting sources, it also downloads a version of NASM which the
+    ssl build script will add to PATH.
 
     If you like to use the official sources instead of the files from
     python.org's subversion repository, Perl is required to build the
diff --git a/Tools/buildbot/external-common.bat b/Tools/buildbot/external-common.bat
index d1933c2..5e4002b 100644
--- a/Tools/buildbot/external-common.bat
+++ b/Tools/buildbot/external-common.bat
@@ -20,6 +20,10 @@
   svn export http://svn.python.org/projects/external/bzip2-1.0.6
 )
 
+@rem NASM, for OpenSSL build
+@rem if exist nasm-2.11.06 rd /s/q nasm-2.11.06
+if not exist nasm-2.11.06 svn export http://svn.python.org/projects/external/nasm-2.11.06
+
 @rem OpenSSL
 if not exist openssl-1.0.1j (
     rd /s/q openssl-1.0.1i