diff --git a/ChangeLog.n b/ChangeLog.n
index aeda8cc017e7e1ad4a053655ea47d5196afe21e5..6505283feb5ec04ff12611363ca59790cc569b01 100644
--- a/ChangeLog.n
+++ b/ChangeLog.n
@@ -1,3 +1,31 @@
+Wed Sep 22 10:57:07 1993  Kevin Layer  (layer@sole)
+
+	* clim-2.0/Makefile.cobjs: move .c generation stuff to
+	Makefile.generic because svr4 needs to use it; MAIN_OBJ hack
+
+	* clim-2.0/Makefile.cobjs-svr4: MAIN_OBJ hack
+
+	* clim-2.0/Makefile.defs: TRAIN_BM used by cl's make-dist
+
+	* clim-2.0/Makefile.generic: use -backtrace-on-error; move .c
+	generation to this file
+
+	* clim-2.0/misc/make-stub-file1: workaround weird C compiler
+	(bug?) on solaris 2: don't assign class values to variable,
+	make them an argument to an uncalled function.
+
+	* clim-2.0/misc/train.lisp: use ../src/clos-preload.cl if it
+	exists.
+
+	* clim-2.0/tk/xm-init.lisp: svr4 hack for static loaded case
+
+	* clim-2.0/tk-silica/xt-silica.lisp: fix from cer to define a
+	method for sheet-mirrored-ancestor-of-clim-stream-sheet-p that
+	does nothing in the case of a t argument, and something in the
+	case of a sheet-parent-mixin.
+
+*******************************************************************************
+
 from cer: Fri Sep 17 12:03:17 PDT 1993
 
 Makefile.defs			Replaced /vapor by /net/vapor, Added PRODUCT_SRC_FILES
diff --git a/Makefile.cobjs b/Makefile.cobjs
index e65786fa31eaa53156383bfb810227622774ba29..9fe5ea2d08c420ca970eba2f873a4ff607543f9b 100644
--- a/Makefile.cobjs
+++ b/Makefile.cobjs
@@ -15,23 +15,6 @@ clim-motif_d.o	: stub-motif.o stub-xt.o $(MOTIFLIB_d)
 clim-olit_d.o	: stub-olit.o  stub-xt.o $(LIBXOL_d)
 	ld -r $(LDFLAGS) -o clim-olit_d.o stub-olit.o stub-xt.o $(LIBXOL_d)
 
-
-stub-motif.c	:  $(XT_UNDEFS)  $(XMC_UNDEFS) $(XM_UNDEFS) misc/make-stub-file misc/make-stub-file1
-	misc/make-stub-file "void ___lisp_load_motif_stub ()"  $(XM_UNDEFS) > /tmp/`whoami`stub-motif.c 
-	misc/make-stub-file1 "void ___lisp_load_motif_stub_vars ()"  $(XMC_UNDEFS) >> /tmp/`whoami`stub-motif.c 
-	$(MV) /tmp/`whoami`stub-motif.c  stub-motif.c 
-
-stub-olit.c	:   $(XT_UNDEFS) $(OLC_UNDEFS) $(OL_UNDEFS) misc/make-stub-file misc/make-stub-file1
-	misc/make-stub-file "void ___lisp_load_olit_stub ()"  $(OL_UNDEFS) > /tmp/`whoami`stub-olit.c 
-	misc/make-stub-file1 "void ___lisp_load_olit_stub_vars ()"  $(OLC_UNDEFS) >> /tmp/`whoami`stub-olit.c 
-	$(MV) /tmp/`whoami`stub-olit.c  stub-olit.c 
-
-stub-x.c	:  $(UNDEFS) misc/make-stub-file
-	misc/make-stub-file "void ___lisp_load_x_stub ()"  $(UNDEFS) > stub-x.c 
-
-stub-xt.c	:  $(XT_UNDEFS) misc/make-stub-file
-	misc/make-stub-file "void ___lisp_load_xt_stub ()"  $(XT_UNDEFS)  > stub-xt.c 
-
 xlibsupport.o	: xlib/xlibsupport.c 
 	$(CC) -c $(CFLAGS) $(XINCLUDES) -o xlibsupport.o xlib/xlibsupport.c
 
@@ -44,3 +27,7 @@ MyDrawingA.o: misc/MyDrawingA.c misc/climgccursor.c
 
 olsupport.o: misc/olsupport.c misc/climgccursor.c
 	$(CC) -c $(CFLAGS) $(OLINCLUDES) -o olsupport.o misc/olsupport.c
+
+$(MAIN_OBJ):
+	ld -r $(LDFLAGS) -o $(MAIN_OBJ) $(ACL_MAIN_OBJ) clim-motif.o stub-x.o \
+		$(MOTIFLIB) $(XTLIB) $(XLIB)
diff --git a/Makefile.cobjs-svr4 b/Makefile.cobjs-svr4
index 9471bdf34e468a6ec548439a2786a7d7bbe6d0c1..f4f0d23cd6cb6a8040e5d87fbc73820009fa265b 100644
--- a/Makefile.cobjs-svr4
+++ b/Makefile.cobjs-svr4
@@ -24,3 +24,8 @@ MyDrawingA.o: misc/MyDrawingA.c misc/climgccursor.c
 
 olsupport.o: misc/olsupport.c misc/climgccursor.c
 	$(CC) -c -K pic $(CFLAGS) $(OLINCLUDES) -o olsupport.o misc/olsupport.c
+
+$(MAIN_OBJ):	stub-motif.o stub-xt.o stub-x.o
+	ld -r $(LDFLAGS) -o $(MAIN_OBJ) $(ACL_MAIN_OBJ) \
+		xlibsupport.o xtsupport.o MyDrawingA.o stub-motif.o stub-xt.o \
+		stub-x.o -lXm -lXt -lX11 -lgen
diff --git a/Makefile.defs b/Makefile.defs
index c426ed3c832a8d3a20a3658c97ef5c38f8510147..53ef34b34ae68422e2505c9399042468085cdd15 100644
--- a/Makefile.defs
+++ b/Makefile.defs
@@ -32,13 +32,16 @@ PSVIEW=:file
 HPGLVIEW=:file
 TRAIN_COMPILE=t
 TRAIN_PROFILEP=t
+TRAIN_BM=t
 
 FRAME_TESTS=t
 
 TRAIN_LISP= \
 	(load \"misc/train.lisp\") \
-	(train-clim :frame-tests $(FRAME_TESTS) :train-times $(TRAIN_TIMES)\
-		:profilep $(TRAIN_PROFILEP) :compile $(TRAIN_COMPILE) :psview $(PSVIEW) :hpglview $(HPGLVIEW))
+	(train-clim :frame-tests $(FRAME_TESTS) :train-times $(TRAIN_TIMES) \
+		:benchmarkp $(TRAIN_BM) :profilep $(TRAIN_PROFILEP) \
+		:compile $(TRAIN_COMPILE) :psview $(PSVIEW) \
+		:hpglview $(HPGLVIEW))
 
 TRAIN_TEXT = \
 	$(ECHO) "\
diff --git a/Makefile.generic b/Makefile.generic
index 991284cacf09ef251b504411645cc074c7bea501..2e9a1fc46a22356af766042e2bd5342cf5ea65b1 100644
--- a/Makefile.generic
+++ b/Makefile.generic
@@ -34,7 +34,7 @@ compile-xm:	$(MOTIF_OBJS) FORCE
 	 :load-source-file-info $(LOAD_SOURCE_FILE_INFO) \
 	 :load-xref-info $(LOAD_XREF_INFO) \
 	 :compile-print nil :compile-verbose nil \
-	 :redefinition-warnings t :gcprint nil)" | $(CL) $(CLOPTS) -batch
+	 :redefinition-warnings t :gcprint nil)" | $(CL) $(CLOPTS) -batch -backtrace-on-error
 
 compile-ol:	$(OPENLOOK_OBJS) FORCE
 	$(ECHO) "\
@@ -56,7 +56,7 @@ compile-ol:	$(OPENLOOK_OBJS) FORCE
 	 :load-source-file-info $(LOAD_SOURCE_FILE_INFO) \
 	 :load-xref-info $(LOAD_XREF_INFO) \
 	 :compile-print nil :compile-verbose nil \
-	 :redefinition-warnings t :gcprint nil)" | $(CL) $(CLOPTS) -batch
+	 :redefinition-warnings t :gcprint nil)" | $(CL) $(CLOPTS) -batch -backtrace-on-error
 
 # Concatenation
 
@@ -152,7 +152,7 @@ clim-xm:	FORCE $(MOTIF_OBJS)
 		(load \"misc/dev-load-1.lisp\") \
 		(load-it 'motif-clim) \
 		(setq sys::*clim-dump-name* \"$(DUMP-CLIM)\") \
-		(load \"misc/dump.lisp\")" | $(DUMP-CL) $(CLOPTS) -batch
+		(load \"misc/dump.lisp\")" | $(DUMP-CL) $(CLOPTS) -batch -backtrace-on-error
 	$(MV) $(DUMP-CLIM) $(CLIMXM)
 	ls -lLt $(CLIMXM) >> Clim-sizes.n
 	size $(CLIMXM) >> Clim-sizes.n
@@ -168,7 +168,7 @@ clim-ol:	FORCE $(OPENLOOK_OBJS)
 		(load \"misc/dev-load-1.lisp\") \
 		(load-it 'openlook-clim) \
 		(setq sys::*clim-dump-name* \"$(DUMP-CLIM)\") \
-		(load \"misc/dump.lisp\")" | $(DUMP-CL) $(CLOPTS) -batch
+		(load \"misc/dump.lisp\")" | $(DUMP-CL) $(CLOPTS) -batch -backtrace-on-error
 	$(MV) $(DUMP-CLIM) $(CLIMOL)
 	ls -lLt $(CLIMOL) >> Clim-sizes.n
 	size $(CLIMOL) >> Clim-sizes.n
@@ -179,7 +179,7 @@ clim-small:	FORCE
 	$(ECHO) " \
 		(load \"misc/load-xm.lisp\") \
 		(setq sys::*clim-dump-name* \"$(DUMP-CLIM)\") \
-		(load \"misc/dump.lisp\")" | $(DUMP-CL) $(CLOPTS) -batch
+		(load \"misc/dump.lisp\")" | $(DUMP-CL) $(CLOPTS) -batch -backtrace-on-error
 	$(MV) $(DUMP-CLIM) $(CLIM-SMALL)
 	ls -lt $(CLIM-SMALL) >> Clim-sizes.n
 	size $(CLIM-SMALL) >> Clim-sizes.n
@@ -202,7 +202,7 @@ train-xm:	FORCE
 	(load-it 'motif-clim :load-composer nil) \
 	$(TRAIN_LISP) \
 	(clim-user::generate-pretty-test-report :file \"$(REPORT_FILE)\")" | \
-	   $(CL) $(CLOPTS) -batch
+	   $(CL) $(CLOPTS) -batch -backtrace-on-error
 
 train-ol:	FORCE
 	$(ECHO) " \
@@ -213,29 +213,29 @@ train-ol:	FORCE
 	(load-it 'openlook-clim :load-composer nil) \
 	$(TRAIN_LISP) \
 	(clim-user::generate-pretty-test-report :file \"$(REPORT_FILE)\")" | \
-	   $(CL) $(CLOPTS) -batch
+	   $(CL) $(CLOPTS) -batch -backtrace-on-error
 
 generate_test_report:
 	@$(ECHO) "\
 	(clim-user::generate-pretty-test-report :file \"$(REPORT_FILE)\") \
 	 (exit) \
-" | $(CLIM) $(CLOPTS) -batch 
+" | $(CLIM) $(CLOPTS) -batch -backtrace-on-error
 
 profile	:	FORCE
 	$(ECHO) "\
 	(clim-user::run-profile-clim-tests) \
-"       | $(CLIM) $(CLOPTS) -batch
+"       | $(CLIM) $(CLOPTS) -batch -backtrace-on-error
 
 benchmark:
 	$(ECHO) "\
 	(clim-user::benchmark-clim $(BENCHMARK_FILE)) \
-"  | $(CLIM) $(CLOPTS) -batch
+"  | $(CLIM) $(CLOPTS) -batch -backtrace-on-error
 
 testps :
 	$(ECHO) "\
 	(load \"test/postscript-tests.lisp\") \
 	(clim-user::run-postscript-tests :output $(PSVIEW)) \
-"  | $(CLIM) $(CLOPTS) -batch
+"  | $(CLIM) $(CLOPTS) -batch -backtrace-on-error
 
 echo-train:
 	-$(ECHO) "$(TRAIN_LISP)(exit 0)"
@@ -335,6 +335,25 @@ dcl	:
 	cd $(CL_SRC) ; /bin/rm -f ucl ;\
 	make dcl	
 
+# these were moved here from Makefile.cobjs because SVR4 needs them, too
+# (and I didn't want to duplicate them in Makefile.cobjs-svr4).
+
+stub-motif.c	:  $(XT_UNDEFS)  $(XMC_UNDEFS) $(XM_UNDEFS) misc/make-stub-file misc/make-stub-file1
+	misc/make-stub-file "void ___lisp_load_motif_stub ()"  $(XM_UNDEFS) > /tmp/`whoami`stub-motif.c 
+	misc/make-stub-file1 "void ___lisp_load_motif_stub_vars ()"  $(XMC_UNDEFS) >> /tmp/`whoami`stub-motif.c 
+	$(MV) /tmp/`whoami`stub-motif.c  stub-motif.c 
+
+stub-olit.c	:   $(XT_UNDEFS) $(OLC_UNDEFS) $(OL_UNDEFS) misc/make-stub-file misc/make-stub-file1
+	misc/make-stub-file "void ___lisp_load_olit_stub ()"  $(OL_UNDEFS) > /tmp/`whoami`stub-olit.c 
+	misc/make-stub-file1 "void ___lisp_load_olit_stub_vars ()"  $(OLC_UNDEFS) >> /tmp/`whoami`stub-olit.c 
+	$(MV) /tmp/`whoami`stub-olit.c  stub-olit.c 
+
+stub-x.c	:  $(UNDEFS) misc/make-stub-file
+	misc/make-stub-file "void ___lisp_load_x_stub ()"  $(UNDEFS) > stub-x.c 
+
+stub-xt.c	:  $(XT_UNDEFS) misc/make-stub-file
+	misc/make-stub-file "void ___lisp_load_xt_stub ()"  $(XT_UNDEFS)  > stub-xt.c 
+
 include $(C_OBJECT_MAKEFILE)
 
 
diff --git a/misc/make-stub-file1 b/misc/make-stub-file1
index e2d8e226ad3481816548730d188a9351779c9229..afd6f865dcd003e88d31f9c6fa4882bae6b17632 100755
--- a/misc/make-stub-file1
+++ b/misc/make-stub-file1
@@ -4,17 +4,24 @@
 header=$1
 shift;
 echo $header
-echo "{ int i;"
+echo "{"
 
 for file in $*; do
 	cat $file | sed -e 's/^/extern int /' -e 's/$/;/'
 done
 
+# I changed the assignment of the class variables to `i' to be
+# arguments to a function.  The Sun's Solaris 2 C compiler was
+# eliminating most of the assignments!  -dkl, 9/14/93
+
+echo 'lisp_stub_dummy_caller('
 for file in $*; do
-	cat $file | sed -e 's/^/i = /' -e 's/$/;/'
+	cat $file | sed -e 's/$/,/'
 done
+echo '0);'
 
 echo "}"
 
+echo 'lisp_stub_dummy_caller(i) {}'
 
 
diff --git a/misc/train.lisp b/misc/train.lisp
index 921928553a928fe9588c90364899e352638eceff..ace0171abe86e9a4c2c92897f3491c223d15100f 100644
--- a/misc/train.lisp
+++ b/misc/train.lisp
@@ -1,6 +1,6 @@
 ; -*- mode: common-lisp; package: user -*-
 ;;
-;;				-[Fri Aug 20 07:36:40 1993 by layer]-
+;;				-[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.
@@ -116,7 +116,9 @@
       (handler-case (delete-file (format nil file-format xx))
 	(error () nil))))
 
-  (compile-file "misc/clos-preload.cl" 
+  (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" 
diff --git a/tk-silica/xt-silica.lisp b/tk-silica/xt-silica.lisp
index e642ab93279b48b428849a9445e7faa29354b2f2..cd1e9b478677fdee919c177a093cebc74121696b 100644
--- a/tk-silica/xt-silica.lisp
+++ b/tk-silica/xt-silica.lisp
@@ -1,6 +1,6 @@
 ;; -*- mode: common-lisp; package: xm-silica -*-
 ;;
-;;				-[Wed Aug 25 11:15:21 1993 by colin]-
+;;				-[Mon Sep 20 09:29:51 1993 by layer]-
 ;; 
 ;; copyright (c) 1985, 1986 Franz Inc, Alameda, CA  All rights reserved.
 ;; copyright (c) 1986-1991 Franz Inc, Berkeley, CA  All rights reserved.
@@ -481,8 +481,11 @@
 ;;-- Perhaps this method should be for any mirrored composite
 ;;-- sheet?
 
+(defmethod sheet-mirrored-ancestor-of-clim-stream-sheet-p ((sheet t))
+  nil)
 
-(defun sheet-mirrored-ancestor-of-clim-stream-sheet-p (sheet)
+(defmethod sheet-mirrored-ancestor-of-clim-stream-sheet-p
+    ((sheet sheet-parent-mixin))
   (labels ((walk-children (sheet)
 	     (dolist (child (sheet-children sheet))
 	       (typecase child
diff --git a/tk/xm-init.lisp b/tk/xm-init.lisp
index a9353d9b60b68dfe136ffbb82efd4e5ad0f4593d..470bc72e1bddedf0cd37ce443e4d72757a11b067 100644
--- a/tk/xm-init.lisp
+++ b/tk/xm-init.lisp
@@ -1,6 +1,6 @@
 ;; -*- mode: common-lisp; package: tk -*-
 ;;
-;;				-[]-
+;;				-[Wed Sep 15 10:56:05 1993 by layer]-
 ;; 
 ;; copyright (c) 1985, 1986 Franz Inc, Alameda, CA  All rights reserved.
 ;; copyright (c) 1986-1991 Franz Inc, Berkeley, CA  All rights reserved.
@@ -34,14 +34,10 @@
   (setq *xm-done* t))
 
 
-#+:svr4
-(progn
+#+svr4
+(unless (ff::symbol-in-main-symbol-table-p "XCreateColormap")
   (defun reinitialize-toolkit ()
     (xt_toolkit_initialize)
     (setup-error-handlers)
     (fixup-class-entry-points))
-  (push '(:eval reinitialize-toolkit) excl::*restart-actions*)
-  )
-
-
-
+  (push '(:eval reinitialize-toolkit) excl::*restart-actions*))
diff --git a/utils/packages.lisp b/utils/packages.lisp
index c27fb14f5fc18a53419e4552d1a34eace80b520e..9e0374bdcb062bed35f8b146ff1026b3570ea614 100644
--- a/utils/packages.lisp
+++ b/utils/packages.lisp
@@ -3628,7 +3628,7 @@
 
 ;; A package for casual use...
 (#-(or ANSI-90 Lucid) clim-lisp::defpackage #+(or ANSI-90 Lucid) defpackage clim-user
-  (:use clim-lisp clim))
+   (:use clim-lisp clim))
 
 ;;; Nasty hack to improve debuggability
 ;;; Dont need it right now.