diff --git a/changelog b/changelog
index 2e0f1b4..a832474 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,5 @@
+20140710 tpd src/axiom-website/patches.html 20140710.03.tpd.patch
+20140710 tpd zips/gcl-2.6.10.tgz add the latest gcl and all of its patches
 20140710 tpd src/axiom-website/patches.html 20140710.02.tpd.patch
 20140710 tpd books/bookvol4 add a section on changing GCL2 versions
 20140710 tpd src/axiom-website/patches.html 20140710.01.tpd.patch
diff --git a/patch b/patch
index dcd3e72..01987d1 100644
--- a/patch
+++ b/patch
@@ -1,4 +1,4 @@
-books/bookvol4 add a section on changing GCL2 versions
+zips/gcl-2.6.10.tgz add the latest gcl and all of its patches
 
-The process of moving GCL2 versions is reasonably simple.
-It is documented in detail.
+gcl-2.6.10 is the latest GCL distribution. We cache a copy to
+provide a stable lisp platform for Axiom.
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index ccfc19d..79e2224 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -4540,6 +4540,8 @@ books/ps/v102leftorering.eps add missing image file
 Makefile remove leftover pdf files on clean
 <a href="patches/20140710.02.tpd.patch">20140710.02.tpd.patch</a>
 books/bookvol4 add a section on changing GCL2 versions
+<a href="patches/20140710.03.tpd.patch">20140710.03.tpd.patch</a>
+zips/gcl-2.6.10.tgz add the latest gcl and all of its patches
  </body>
 </html>
 
diff --git a/zips/gcl-2.6.10.h.linux.defs.patch b/zips/gcl-2.6.10.h.linux.defs.patch
new file mode 100644
index 0000000..d161426
--- /dev/null
+++ b/zips/gcl-2.6.10.h.linux.defs.patch
@@ -0,0 +1,13 @@
+--- linux.defs	2013-11-11 09:55:48.000000000 -0500
++++ linux.defs.tpd	2014-07-02 06:58:01.811472500 -0400
+@@ -8,6 +8,10 @@
+ 
+ # Machine dependent makefile definitions for intel 386,486 running linux
+ 
++# 20120407000 tpd link Axiom's code per Camm's instruction
++SYSTEM_OBJS = ${OBJ}/${SYS}/lib/cfuns-c.o ${OBJ}/${SYS}/lib/sockio-c.o
++OFLAG = -O
++
+ LBINDIR=/usr/local/bin
+ 
+ #OFLAG	=  -g -Wall
diff --git a/zips/gcl-2.6.10.lsp.gcl_top.lsp.patch b/zips/gcl-2.6.10.lsp.gcl_top.lsp.patch
new file mode 100644
index 0000000..e88355b
--- /dev/null
+++ b/zips/gcl-2.6.10.lsp.gcl_top.lsp.patch
@@ -0,0 +1,16 @@
+--- gcl_top.lsp	2013-11-11 09:55:48.000000000 -0500
++++ gcl_top.lsp.tpd	2014-07-02 07:54:30.780280567 -0400
+@@ -97,9 +97,10 @@
+ 	 ((probe-file "init.lsp") (load "init.lsp"))))
+       (and (functionp *top-level-hook*)(funcall   *top-level-hook*)))
+ 
+-    (when (boundp '*system-banner*)
+-      (format t *system-banner*)
+-      (format t "Temporary directory for compiler files set to ~a~%" *tmp-dir*))
++    (setq *tmp-dir* (getenv "TMP"))
++;    (when (boundp '*system-banner*)
++;      (format t *system-banner*)
++;      (format t "Temporary directory for compiler files set to ~a~%" *tmp-dir*))
+ 
+     (loop
+       (setq +++ ++ ++ + + -)
diff --git a/zips/gcl-2.6.10.o.read.d.patch b/zips/gcl-2.6.10.o.read.d.patch
new file mode 100644
index 0000000..d4bece1
--- /dev/null
+++ b/zips/gcl-2.6.10.o.read.d.patch
@@ -0,0 +1,11 @@
+--- read.d	2013-11-11 09:55:48.000000000 -0500
++++ read.d.tpd	2014-07-02 07:32:04.301598985 -0400
+@@ -2162,7 +2162,7 @@
+ 	else if (strm == Ct)
+ 		strm = symbol_value(sLAterminal_ioA);
+ 	check_type_stream(&strm);
+-	if (stream_at_end(strm)) {
++	if (!listen_stream(strm)) {
+ 		if (eof_errorp == Cnil)
+ 			@(return eof_value)
+ 		else
diff --git a/zips/gcl-2.6.10.tgz b/zips/gcl-2.6.10.tgz
new file mode 100644
index 0000000..14e0e2d
Binary files /dev/null and b/zips/gcl-2.6.10.tgz differ
diff --git a/zips/gcl-2.6.10.unixport.makefile.patch b/zips/gcl-2.6.10.unixport.makefile.patch
new file mode 100644
index 0000000..8e29c87
--- /dev/null
+++ b/zips/gcl-2.6.10.unixport.makefile.patch
@@ -0,0 +1,11 @@
+--- makefile	2013-11-11 09:55:48.000000000 -0500
++++ makefile.tpd	2014-07-02 07:40:38.480142656 -0400
+@@ -18,7 +18,7 @@
+ 
+ LD_FLAGS=$(LDFLAGS) $(FIRST_FILE)
+ LD_LIBS_PRE=$(addprefix -u ,$(PATCHED_SYMBOLS))
+-LD_LIBS_POST=$(LIBS) $(LIBC) -lgclp $(LAST_FILE)
++LD_LIBS_POST=$(LIBS) $(LIBC) -lgclp ${OBJ}/${SYS}/lib/libspad.a $(LAST_FILE)
+ 
+ ifeq ($(ARRS),)
+ ARRS:=ar rs
