diff --git a/ChangeLog.n b/ChangeLog.n
index 660b6ebbea43462c5e4c448556ed71a3ac72b94a..87ceba4707eea7332b414e542ecda32b6fadfeb1 100644
--- a/ChangeLog.n
+++ b/ChangeLog.n
@@ -1,3 +1,16 @@
+Thu Mar 23 16:20:50 1995  George Jacob  (georgej@lava)
+
+	* Makefile.defs (TRAIN_TEXT): Changed TRAIN_LISP to call
+	train-clim with report-file arg set to $REPORT_FILE
+	
+	* misc/train.lisp: Modified train-clim to take a report-file kwdarg
+
+	* Makefile.sun4: Used Colin's updated version.
+
+	* misc/xtsupport.c: Used Colin's updated version.
+
+	* Makefile.cobjs-svr4: Added MOTIFXTRAOS to MAIN_OBJ link rule
+
 (for 4.2.devel.28 merge):
 
 Sat Dec 17 22:30:41 1994  Duane Rettig  (duane at clay)
diff --git a/Makefile.cobjs-svr4 b/Makefile.cobjs-svr4
deleted file mode 100644
index 9334898dcf3c5041a69e032f1911e492482d2092..0000000000000000000000000000000000000000
--- a/Makefile.cobjs-svr4
+++ /dev/null
@@ -1,31 +0,0 @@
-# $fiHeader: Makefile.cobjs-svr4,v 1.1 93/04/16 09:26:11 layer Exp $
-
-climol.so:	xlibsupport.o xtsupport.o olsupport.o
-	(test -f $(setup_LLP) && eval `$(setup_LLP) openlook`; \
-	 $(MAKE_SHARED) $(SHAREFLAGS) -o climol.so xlibsupport.o xtsupport.o olsupport.o \
-		$(IMPORTS) -lXol -lXt -lX11)
-
-climxm.so:	xlibsupport.o xtsupport.o MyDrawingA.o
-	(test -f $(setup_LLP) && eval `$(setup_LLP) motif`; \
-	 $(MAKE_SHARED) $(SHAREFLAGS) -o climxm.so xlibsupport.o xtsupport.o MyDrawingA.o \
-		 $(IMPORTS) -lXm -lXt -lX11 $(CLIMXMLIB))
-
-xlibsupport.o	: xlib/xlibsupport.c 
-	$(CC) -c $(PICFLAGS) $(CFLAGS) $(XINCLUDES) -o xlibsupport.o \
-		xlib/xlibsupport.c
-
-xtsupport.o: misc/xtsupport.c
-	$(CC) -c $(PICFLAGS) $(CFLAGS) $(XINCLUDES) $(XTSUPPORTINCLUDES)\
-		-o xtsupport.o misc/xtsupport.c
-
-MyDrawingA.o: misc/MyDrawingA.c misc/climgccursor.c
-	$(CC) -c $(PICFLAGS) $(CFLAGS) $(XMINCLUDES) -o MyDrawingA.o \
-		misc/MyDrawingA.c
-
-olsupport.o: misc/olsupport.c misc/climgccursor.c
-	$(CC) -c $(PICFLAGS) $(CFLAGS) $(OLINCLUDES) -o olsupport.o misc/olsupport.c
-
-$(MAIN_OBJ):	stub-motif.o stub-xt.o stub-x.o $(ACL_MAIN_OBJ)
-	ld -r $(LDFLAGS) -o $(MAIN_OBJ) $(ACL_MAIN_OBJ) \
-		xlibsupport.o xtsupport.o MyDrawingA.o stub-motif.o stub-xt.o \
-		stub-x.o $(MOTIFLIB) $(XTLIB) $(MAINOBJXLIB)
diff --git a/Makefile.defs b/Makefile.defs
index 4a4e83c1b3a96ca493a402e54857fe85cdb16a9b..1f74b261d3e999be3175db4ec3dbe745fb6e4ee8 100644
--- a/Makefile.defs
+++ b/Makefile.defs
@@ -33,7 +33,7 @@ TRAIN_LISP= \
 	(train-clim :frame-tests $(FRAME_TESTS) :train-times $(TRAIN_TIMES) \
 		:benchmarkp $(TRAIN_BM) :profilep $(TRAIN_PROFILEP) \
 		:compile $(TRAIN_COMPILE) :psview $(PSVIEW) \
-		:hpglview $(HPGLVIEW))
+		:hpglview $(HPGLVIEW) :report-file \"$(REPORT_FILE)\")
 
 TRAIN_TEXT = \
 	$(ECHO) "\
diff --git a/Makefile.sun4 b/Makefile.sun4
index 17876e29789c7c983ae7a5a54488bed22f01522f..e5487281f65eb856e3d277e47f99ef3722f4492d 100644
--- a/Makefile.sun4
+++ b/Makefile.sun4
@@ -1,4 +1,4 @@
-# $fiHeader: Makefile.sun4,v 1.8 1993/09/17 06:34:14 duane Exp $
+# $fiHeader: Makefile.sun4,v 1.10 1994/12/18 06:44:42 duane Exp $
 #
 #  Makefile.sun4 for CLIM 2.0
 #
@@ -15,16 +15,14 @@ XTLIB=$(MOTIFHOME)/usr/lib/libXt$(DEBUGLIB).a
 XINCLUDES=-I$(MOTIFHOME)/usr/include
 XMINCLUDES=-I$(MOTIFHOME)/usr/include
 
-XTSUPPORTINCLUDES=-I/net/vapor/x11/R5/src/mit/lib/Xt
 # Do we really need this. Why is it referenced?
 # MOTIFXTRAOS=$(MOTIFHOME)/usr/lib/Motif/Sun/dlsym.o
 
-OPENLOOKHOME=/net/vapor/x11/olit-3.0
+OPENLOOKHOME=/usr/openwin
 OPENLOOKLIB=$(OPENLOOKHOME)/lib/libXol.a
 OLXLIB=$(OPENLOOKHOME)/lib/libX11.a
 OLXTLIB=$(OPENLOOKHOME)/lib/libXt.a
-
-OLINCLUDES=-I$(OPENLOOKHOME)/OWV3/src/include/
+OLINCLUDES=-I$(OPENLOOKHOME)/include
 
 SAVEEXP = 
 RESTEXP = 
diff --git a/misc/train.lisp b/misc/train.lisp
index 50024351f4dfdd52bb0050226b1dd160d6556c35..89bcc7d70b36730a383b91e989f5003d3ed29896 100644
--- a/misc/train.lisp
+++ b/misc/train.lisp
@@ -1,7 +1,7 @@
 ; -*- mode: common-lisp; package: user -*-
 ;;
 ;;				-[Thu Sep  2 10:17:42 1993 by layer]-
-;; 
+;;
 ;; copyright (c) 1985, 1986 Franz Inc, Alameda, CA  All rights reserved.
 ;; copyright (c) 1986-1992 Franz Inc, Berkeley, CA  All rights reserved.
 ;;
@@ -22,89 +22,88 @@
 ;;
 ;; $fiHeader: train.lisp,v 1.16 1993/11/23 19:58:44 cer Exp $
 
-(defun train-clim (&key (train-times 2) 
+(defun train-clim (&key (train-times 2)
 			(psview nil)
 			(frame-tests t)
 			(errorp t)
 			(hpglview nil)
 			(compile t)
 			(profilep t)
-			(benchmarkp t))
+			(benchmarkp t)
+			(report-file))
 
   (load "test/test.lisp")
-  
+
   (room t)
-  
-  (clim-test:with-test-reporting (:file (if (excl::featurep :clim-motif) 
-					     "notes/test-suite-reportxm.lisp"
-					   "notes/test-suite-reportol.lisp"))
+
+  (clim-test:with-test-reporting (:file report-file)
     (when compile
       (compile-file-if-needed "test/test-suite" :print nil :verbose t))
     (load "test/test-suite.fasl")
-    (clim-test:train-clim-2 train-times) 
+    (clim-test:train-clim-2 train-times)
     (when frame-tests
       (clim-test:do-frame-tests errorp))
     (when psview
       (load "test/postscript-tests.lisp")
       (clim-user::run-postscript-tests :output psview))
-  
+
     (when hpglview
       (load "test/postscript-tests.lisp")
       (require :climhpgl)
       (load "test/hpgl-tests.lisp")
       (clim-user::run-hpgl-tests :output hpglview)))
-  
+
   (room t)
   (gc t)
   (room t)
 
   #+ignore
-  (format t "Counters are ~S~%"  
+  (format t "Counters are ~S~%"
 	  tk::(list *string-counter* *font-counter* *color-counter* *widget-count*))
 
 
   #+ignore
   (progn
     (format t "Port mapping ~S~%" (silica::port-mirror->sheet-table (clim:find-port)))
-    
+
     #+verbose
-    (maphash #'(lambda  (x y) 
+    (maphash #'(lambda  (x y)
 		 (print y))
 	     (silica::port-mirror->sheet-table (clim:find-port)))
-    
+
     (format t "Port framem ~S~%" (find-frame-manager :port (clim:find-port)))
     (format t "Port framem frames ~S~%" (frame-manager-frames
 					 (find-frame-manager :port (clim:find-port))))
-    
+
     (format t " Address mapping ~S~%" tk::*address->object-mapping*)
-    
+
     #+verbose
     (maphash #'(lambda  (x y) (print y))
 	     tk::*address->object-mapping*))
-  
-  
+
+
   #-svr4 (excl:shell "ps vaxg")
-  
+
   (when (fboundp 'generate-coverage-report)
-    (with-open-file (*standard-output* (if (excl::featurep :clim-motif) 
+    (with-open-file (*standard-output* (if (excl::featurep :clim-motif)
 					   "notes/coverage-reportxm.lisp"
 					 "notes/coverage-reportol.lisp")
 		     :if-exists :supersede :direction :output)
       (generate-coverage-report :files (known-clim2-files))))
 
   ;; We have to do this here because profiling clears the call counts.
-  
+
   (when (and (fboundp 'clim-user::run-profile-clim-tests)
 	     profilep)
     (clim-user::run-profile-clim-tests))
 
-  (when benchmarkp 
+  (when benchmarkp
     (clim-test::benchmark-clim))
 
   ;; delete the preload fasls for the type of clim we are testing, so that
   ;; make-dist cat use the one we will make.
 
-  (let ((xx (if* (excl::featurep :clim-motif) 
+  (let ((xx (if* (excl::featurep :clim-motif)
 	       then "xm"
 	       else "ol")))
     (dolist (file-format '("clim~a-preload.fasl"
@@ -122,9 +121,9 @@
     (compile-file (if* (probe-file "../src/clos-preload.cl")
 		     thenret
 		     else "misc/clos-preload.cl")
-		  :output-file 
-		  (if (excl::featurep :clim-motif) 
-		      "climxm-preload.fasl" 
+		  :output-file
+		  (if (excl::featurep :clim-motif)
+		      "climxm-preload.fasl"
 		    "climol-preload.fasl"))))
 
 
diff --git a/misc/xtsupport.c b/misc/xtsupport.c
index 7890af77bcc57de68329d7fccecf66e7d815c5ec..8b00a8bd28760cb7eedc890cf41688804ad89190 100644
--- a/misc/xtsupport.c
+++ b/misc/xtsupport.c
@@ -1,4 +1,4 @@
-/* $fiHeader: xtsupport.c,v 1.9 1993/12/04 00:32:10 duane Exp $ */
+/* $fiHeader: xtsupport.c,v 1.10 1994/12/04 23:59:55 colin Exp $ */
 
 #include <X11/Intrinsic.h>
 
@@ -6,9 +6,36 @@
 #include <stdio.h>
 #include <X11/IntrinsicP.h>
 #include <X11/CoreP.h>
-#include "IntrinsicI.h"
-
-
+#include <X11/Xos.h>
+
+/* All the following are defintions from various X11R5 Xlib and Xt */
+/* files. Their purpose is solely to enable XtAppIntervalNextTimer to */
+/* be compiled. */
+
+typedef struct _ProcessContextRec {
+    XtAppContext	defaultAppContext;
+    XtAppContext	appContextList;
+} ProcessContextRec, *ProcessContext;
+
+typedef struct internalCallbackRec {
+    unsigned short count;
+    char	   is_padded;	/* contains NULL padding for external form */
+    char	   call_state;  /* combination of _XtCB{FreeAfter}Calling */
+    /* XtCallbackList */
+} InternalCallbackRec, *InternalCallbackList;
+
+typedef struct _TimerEventRec {
+        struct timeval        te_timer_value;
+	struct _TimerEventRec *te_next;
+} TimerEventRec;
+
+typedef struct _XtAppStruct {
+    XtAppContext next;		/* link to next app in process context */
+    ProcessContext process;	/* back pointer to our process context */
+    InternalCallbackList destroy_callbacks;
+    Display **list;
+    TimerEventRec *timerQueue;
+} XtAppStruct;
 
 /* Some systems running NTP daemons are known to return strange usec
  * values from gettimeofday.  At present (3/90) this has only been
@@ -42,8 +69,6 @@
 #define FIXUP_TIMEVAL(t)
 #endif /*NEEDS_NTPD_FIXUP*/
 
-
-
 /*
  * Private routines
  */
@@ -69,6 +94,8 @@
 	|| (((t2).tv_sec == (t1).tv_sec)&& ((t2).tv_usec >= (t1).tv_usec)))
 
 
+/* End of code extracts from X11R5 source tree */
+
 /*
  * This is what it's all for
  */