diff --git a/ChangeLog.n b/ChangeLog.n
index c0fffc679e524b3397cd51ac7980e5ec55172b36..647eabc7c77838a63b15bd6286ac4532e7bdaa05 100644
--- a/ChangeLog.n
+++ b/ChangeLog.n
@@ -1,3 +1,37 @@
+*************************************************************
+
+Thu Mar 14 21:11:06 PST 1996 Colin Meldrum (colin@vapor)
+
+Makefile.cobjs
+	replaced mainxm.o rule with makemainxm and added MAIN_OBJ
+	ACL_MAIN_OBJ to allow the one rule to be used for making both
+	mainxm.o and ics_mainxm.o
+	added a commentary on CLIM's current use of .o, .a and .so files
+
+Makefile.generic
+	removed ucl.clim and ucli.clim rules 
+	made xm-dcl and xm-dcli rules create a ucl.clim (or ucli.clim) as well
+
+Makefile.sgi4d-svr4, Makefile.sun4, Makefile.rs6000
+	added STD_DEFINES and AR defns for making Wnn/jlib.
+
+demo/japanese-graphics-editor.lisp
+	renamed functions with fat characters in them to use only plain
+	characters
+	this avoids spurious warnings when loading the demos into a non-ics 
+	lisp
+
+tk/load-xm.lisp, tk/xm-init.lisp
+	now we simply always assume shared on all dlfcn archs except for rs6k
+
+tk-silica/xt-silica.lisp
+	fixed bracketting typo which was breaking font-set-from-font-list
+	from working correctly
+
+wnn/load-wnn.lisp
+	Put in error message to trap if someone tries to dynamically load
+	it on a dlfcn arch - they can't because we don't have a shared
+	libwnn 
 
 *************************************************************
 
diff --git a/Makefile.cobjs b/Makefile.cobjs
index c24e14b9b7255b8a7f1970f07fdf188bfe6094d7..e7dd1d9fa0809255595568aa94d2672561f21f23 100644
--- a/Makefile.cobjs
+++ b/Makefile.cobjs
@@ -1,4 +1,4 @@
-# $fiHeader: Makefile.cobjs,v 1.12 1995/11/08 06:11:10 georgej Exp $
+# $fiHeader: Makefile.cobjs,v 1.13 1996/03/13 09:55:07 colin Exp $
 #
 #  Makefile.cobj for CLIM 2.0
 #
@@ -67,10 +67,64 @@ climol.so: xlibsupport.o xtsupport.o olsupport.o
 # mainxm.o contains foreign code from the libraries X11,Xt and Xm
 # required by Motif version of CLIM statically linked
 
-mainxm.o: $(ACL_MAIN_OBJ) $(PRODUCT-GENERIC-OBJS) $(STATIC-XM-OBJS) 
+makemainxm: $(ACL_MAIN_OBJ) $(PRODUCT-GENERIC-OBJS) $(STATIC-XM-OBJS) 
 	(eval '$(SET_LIBRARY_PATH)' ; \
-	ld -r $(LDFLAGS) -o mainxm.o \
+	ld -r $(LDFLAGS) -o $(MAIN_OBJ) \
 		$(ACL_MAIN_OBJ) \
 		stub-xt.o stub-x.o stub-motif.o \
 		$(TKLIB) $(XTLIB) $(XLIB) $(MOTIFXTRAS))
 
+# Here's the deal on the CLIM cobjs. (cim 3/13/96)
+# 
+# 1. Objects that contain CLIM's C support code. When building a CLIM image
+# these should always be linked in to the initial executable if possible.
+# NB they are still required even if mainxm.o is being used.
+# 
+# 	xtsupport.o
+# 	xlibsupport.o
+# 	xmsupport.o
+# 
+# If they're not linked in then when climxm is loaded they will be
+# loaded individually or in the case of dlfcn 
+# 
+# 	climxm.so
+# 
+# (a shared library made from all of the above) will be loaded.
+# 
+# 2. Stub files that define what we need from the X libraries - 
+# 
+# 	stub-xt.o
+# 	stub-x.o
+# 	stub-motif.o
+# 
+# These also should always be linked in to the initial executable if
+# possible. They are not required if mainxm.o is being used but using
+# them will not do any harm as long as
+# 
+# 3. All of the required functionality from the X libraries put into a
+# single .o (with main for licensing restrictions on SunOS)
+# 
+# 	mainxm.o
+#	ics_mainxm.o
+# 
+# ics_mainxm.o is identical to mainxm.o except that it's built from a
+# ci/main.o rather than a c/main.o 
+#
+# in the distn
+#	 mainxm.o -> dist-clim2/build/c/mainxm.o 
+#    ics_mainxm.o -> dist-clim2-ics/build/ci/mainxm.o
+#              
+# This needs to be used where the libraries are not available on the
+# machine on which CLIM is being installed. If this is not available
+# then the 3 stub files must be used.
+# 
+# 4. Stub files + library for wnn
+# 
+# 	stub-wnn.o
+# 	libwnn.a
+# 
+# Use both of these in creating the initial executable - the stub-wnn.o
+# must come before the libwnn.a in the list of cobjs. 
+# 
+# On dlfcn we _have_ to link into the initial executable because we
+# don't currently have a shared version of libwnn
diff --git a/Makefile.defs b/Makefile.defs
index dc1846a4630b3882ce9a9470e8e4b259810f9bcc..7a354123327e119361336e12c5fe9832fde307d1 100644
--- a/Makefile.defs
+++ b/Makefile.defs
@@ -1,4 +1,4 @@
-# $fiHeader: Makefile.defs,v 1.35 1996/03/01 05:41:26 colin Exp $
+# $fiHeader: Makefile.defs,v 1.36 1996/03/13 09:55:08 colin Exp $
 #
 #  Makefile.defs for CLIM 2.0
 #
@@ -103,7 +103,7 @@ SHARED-XM-OBJS= climxm.so
 STATIC-OL-OBJS= stub-olit.o olsupport.o
 SHARED-OL-OBJS= climol.so
 
-WNNLIB = libwnn.a
+WNNLIB = ./libwnn.a
 STATIC-WNN-OBJS=stub-wnn.o $(WNNLIB)
 
 # The default is for statically linked Motif
diff --git a/Makefile.generic b/Makefile.generic
index 409740678ef94ebc3fccd0d22b16e8f82e4d23b7..7fa70cef33f0edc5d0ffb8223ef257d518655d3c 100644
--- a/Makefile.generic
+++ b/Makefile.generic
@@ -1,4 +1,4 @@
-# $fiHeader: Makefile.generic,v 1.34 1996/03/01 05:41:30 colin Exp $
+# $fiHeader: Makefile.generic,v 1.35 1996/03/13 09:55:10 colin Exp $
 #
 #  Makefile.generic for CLIM 2.0
 #
@@ -239,7 +239,7 @@ echo_src_files:
 	@echo $(PRODUCT_SRC_FILES)
 
 
-################## Lower level Makefile stuff
+################## Lower level make-dist stuff
 
 xm-dcl	: stub-x.o stub-xt.o stub-motif.o \
 		 xlibsupport.o xtsupport.o xmsupport.o
@@ -250,13 +250,12 @@ xm-dcl	: stub-x.o stub-xt.o stub-motif.o \
 		user_objects='$(PWD)/stub-x.o $(PWD)/stub-xt.o $(PWD)/stub-motif.o \
 		$(PWD)/xlibsupport.o $(PWD)/xmsupport.o $(PWD)/xtsupport.o \
 		$(CL_SRC)/code/excldep.o $(CL_SRC)/code/socket.o \
-		$(TKLIB) $(XTLIB) $(XLIB)' dcl ;\
-	/bin/mv dcl xm-dcl ; \
+		$(TKLIB) $(XTLIB) $(XLIB) $(MOTIFXTRAS)' dcl ;\
+	/bin/mv dcl xm-dcl ; /bin/mv ucl ucl.clim ;\
 	/bin/mv dcl.climsave dcl ; /bin/mv ucl.climsave ucl; $(RESTEXP)
 
-
 xm-dcli	: stub-x.o stub-xt.o stub-motif.o stub-wnn.o \
-		 xlibsupport.o xtsupport.o xmsupport.o
+		 xlibsupport.o xtsupport.o xmsupport.o libwnn.a
 	cd $(CL_SRC) ; \
 	/bin/mv dcli dcli.climsave ; /bin/mv ucli ucli.climsave ; $(SAVEEXPI) ; \
 	make initial_oldspace=$(OLDSPACE) oldspace=$(OLDSPACE) \
@@ -265,31 +264,10 @@ xm-dcli	: stub-x.o stub-xt.o stub-motif.o stub-wnn.o \
 		$(PWD)/stub-wnn.o \
 		$(PWD)/xlibsupport.o $(PWD)/xmsupport.o $(PWD)/xtsupport.o \
 		$(CL_SRC)/code/excldep.o $(CL_SRC)/code/socket.o \
-		$(TKLIB) $(XTLIB) $(XLIB) $(PWD)/libwnn.a' dcli ;\
-	/bin/mv dcli xm-dcli ; \
+		$(TKLIB) $(XTLIB) $(XLIB) $(PWD)/libwnn.a $(MOTIFXTRAS)' dcli ;\
+	/bin/mv dcli xm-dcli ; /bin/mv ucli ucli.clim ;\
 	/bin/mv dcli.climsave dcli ; /bin/mv ucli.climsave ucli; $(RESTEXPI)
 
-ucl.clim: stub-x.o stub-xt.o stub-motif.o \
-		 xlibsupport.o xtsupport.o xmsupport.o
-	cd $(CL_SRC) ; /bin/mv ucl ucl.climsave ; $(SAVEEXP) ; \
-	make stubs=$(stubs) \
-		user_objects=' \
-		$(PWD)/stub-x.o $(PWD)/stub-xt.o $(PWD)/stub-motif.o \
-		$(PWD)/xlibsupport.o $(PWD)/xmsupport.o $(PWD)/xtsupport.o \
-		$(TKLIB) $(XTLIB) $(XLIB) $(MOTIFXTRAS)' ucl ;\
-	/bin/mv ucl ucl.clim ; $(RESTEXP) ; /bin/mv ucl.climsave ucl
-
-ucli.clim: stub-x.o stub-xt.o stub-motif.o stub-wnn.o \
-		 xlibsupport.o xtsupport.o xmsupport.o
-	cd $(CL_SRC) ; /bin/mv ucli ucli.climsave ; $(SAVEEXPI) ; \
-	make stubs=$(stubs) \
-		user_objects=' \
-		$(PWD)/stub-x.o $(PWD)/stub-xt.o $(PWD)/stub-motif.o \
-		$(PWD)/stub-wnn.o \
-		$(PWD)/xlibsupport.o $(PWD)/xmsupport.o $(PWD)/xtsupport.o \
-		$(TKLIB) $(XTLIB) $(XLIB) $(PWD)/libwnn.a $(MOTIFXTRAS)' ucli ;\
-	/bin/mv ucli ucli.clim ; $(RESTEXPI) ; /bin/mv ucli.climsave ucli
-
 ################## End of make-dist stuff
 
 include Makefile.cobjs
diff --git a/Makefile.rs6000 b/Makefile.rs6000
index 54ce5a46c72128ece2dd4deb81f248637ca3d08d..6cbc86db3f8c70c8d221d41b0fd47a7ab7c482bc 100644
--- a/Makefile.rs6000
+++ b/Makefile.rs6000
@@ -1,4 +1,4 @@
-# $fiHeader: Makefile.rs6000,v 1.4 1995/10/20 17:36:10 colin Exp $
+# $fiHeader: Makefile.rs6000,v 1.5 1996/03/13 09:55:14 colin Exp $
 #
 #  Makefile.rs6000 for CLIM 2.0
 #
@@ -17,6 +17,8 @@ XINCLUDES= -I/usr/include
 
 PRODUCT-OBJS= $(PRODUCT-GENERIC-OBJS) $(STATIC-XM-OBJS) $(SHARED-XM-OBJS)
 MAKE_SHARED = make_shared
+STD_DEFINES = -DSYSV -DAIXV3
+AR = ar clq
 
 CL= ../src/xm-dcl
 
diff --git a/Makefile.sgi4d-svr4 b/Makefile.sgi4d-svr4
index 69a67a7637811ec8722d066408b09b213963e367..25cab1c40cba13d16f1248995c7bf58d0175cf8b 100644
--- a/Makefile.sgi4d-svr4
+++ b/Makefile.sgi4d-svr4
@@ -1,4 +1,4 @@
-# $fiHeader: Makefile.sgi4d-svr4,v 1.7 1995/10/20 17:36:12 colin Exp $
+# $fiHeader: Makefile.sgi4d-svr4,v 1.8 1996/03/13 09:55:15 colin Exp $
 #
 #  Makefile.sigi4d-svr4 for CLIM 2.0
 #
@@ -18,5 +18,7 @@ PRODUCT-OBJS= $(PRODUCT-GENERIC-OBJS) $(STATIC-XM-OBJS) $(SHARED-XM-OBJS)
 PICFLAGS = -KPIC
 SHAREFLAGS = -shared -all
 MAKE_SHARED = ld
+STD_DEFINES = -DSVR4
+AR = /usr/bin/ar cq
 
 include Makefile.generic
diff --git a/Makefile.sun4 b/Makefile.sun4
index 0632eb9e3f93b1cd5029bd9239ec28d18f830ca4..3201d73d160b0a88b084e48827721ac4be70e5a6 100644
--- a/Makefile.sun4
+++ b/Makefile.sun4
@@ -1,4 +1,4 @@
-# $fiHeader: Makefile.sun4,v 1.12 1995/05/17 19:47:11 colin Exp $
+# $fiHeader: Makefile.sun4,v 1.13 1996/03/13 09:55:17 colin Exp $
 #
 #  Makefile.sun4 for CLIM 2.0
 #
@@ -15,6 +15,8 @@ TKLIB=$(MOTIFHOME)/usr/lib/libXm.a
 XTLIB=/net/louie/malle/colin/X11R5/Ximp-libs/libXt.a
 XLIB=/net/louie/malle/colin/X11R5/Ximp-libs/libX11.a
 
+AR = ar cq
+
 # not needed anymore - we make libwnn.a in clim-2.0
 #WNNLIB=/usr/fi/X11R5/lib/libwnn.a
 
diff --git a/demo/japanese-graphics-editor.lisp b/demo/japanese-graphics-editor.lisp
index dec3e20d0c5d5df54a1e14474e2e6cf97d152810..454b1672e1b61fde2a1fb820a3ad0d5c3aca3031 100644
--- a/demo/japanese-graphics-editor.lisp
+++ b/demo/japanese-graphics-editor.lisp
@@ -1,6 +1,6 @@
 ;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Package: JAPANESE-GRAPHICS-EDITOR; Base: 10; Lowercase: Yes -*-
 
-;; $fiHeader: japanese-graphics-editor.lisp,v 1.2 1996/03/01 05:42:32 colin Exp $
+;; $fiHeader: japanese-graphics-editor.lisp,v 1.3 1996/03/13 09:55:40 colin Exp $
 
 (in-package :japanese-graphics-editor)
 
@@ -474,7 +474,7 @@
   (dolist (object (slot-value frame 'objects))
     (draw-object object stream)))
 
-(define-graphics-editor-command (com-ボックスの成作)
+(define-graphics-editor-command (com-create-box :name "ボックスの成作")
     ((left 'integer)
      (top 'integer))
   (com-deselect-object)
@@ -531,7 +531,7 @@
 	       (setq box (make-box left top right bottom label style shape))
 	       (return-from track-pointer)))
 	   (beep stream)
-	   (return-from com-ボックスの成作)))))
+	   (return-from com-create-box)))))
     (when box
       (setf (slot-value *application-frame* 'objects)
 	    (append (slot-value *application-frame* 'objects) (list box)))
@@ -544,13 +544,13 @@
 
 ;; A mouse click over blank area creates a new box.
 (define-presentation-to-command-translator create-box
-    (blank-area com-ボックスの成作 graphics-editor
+    (blank-area com-create-box graphics-editor
      :gesture :select :menu nil)
     (x y)
   (list x y))
 
 ;; Select an object by clicking "select" (Mouse-Left) on it.
-(define-graphics-editor-command com-ボックスの選択
+(define-graphics-editor-command (com-select-box :name "ボックスの選択")
     ((object 'box :gesture :select))
   (select-object *application-frame* object)
   (setf (slot-value *application-frame* 'style) (object-style object)
@@ -566,7 +566,7 @@
     (deselect-object *application-frame* (frame-selected-object *application-frame*))))
 
 ;; Move an object by clicking Mouse-Middle on it and dragging the mouse.
-(define-graphics-editor-command com-ボックスの移動
+(define-graphics-editor-command (com-move-object :name "ボックスの移動")
     ((object 'box :gesture :describe))
   (let ((stream (get-frame-pane *application-frame* 'display)))
     (with-bounding-rectangle* (left top right bottom) object
diff --git a/sys/sysdcl.lisp b/sys/sysdcl.lisp
index 0e7342832ef80c134614eb24267291f446630970..538ff43b0cae6a657687cde5ca3f86f3cd742839 100644
--- a/sys/sysdcl.lisp
+++ b/sys/sysdcl.lisp
@@ -1,6 +1,6 @@
 ;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Package: CL-USER; Base: 10; Lowercase: Yes -*-
 
-;; $fiHeader: sysdcl.lisp,v 1.50 1996/03/01 05:43:02 colin Exp $
+;; $fiHeader: sysdcl.lisp,v 1.51 1996/03/13 09:55:53 colin Exp $
 
 (in-package :cl-user)
 
@@ -12,7 +12,7 @@
   (export '(excl::codeset-0 excl::codeset-1 excl::codeset-2 excl::codeset-3
 	    excl::string-to-euc excl::euc-to-string)
 	  (find-package :excl))
-  (export '(ff::euc-to-char* ff::char*-to-euc) (find-package :ff)))
+  (export '(ff::euc-to-char* ff::char*-to-euc ff::wchar*-to-string) (find-package :ff)))
 
 "Copyright (c) 1990, 1991, 1992 Symbolics, Inc.  All rights reserved."
 
diff --git a/tk-silica/xt-silica.lisp b/tk-silica/xt-silica.lisp
index d1f3ac9512712287f32a41d3335cd1074f9413c7..601e09be34ed47056b1ff6350811ad6a139e2c7e 100644
--- a/tk-silica/xt-silica.lisp
+++ b/tk-silica/xt-silica.lisp
@@ -19,7 +19,7 @@
 ;; Commercial Software developed at private expense as specified in
 ;; DOD FAR Supplement 52.227-7013 (c) (1) (ii), as applicable.
 ;;
-;; $fiHeader: xt-silica.lisp,v 1.101 1996/03/01 05:44:25 colin Exp $
+;; $fiHeader: xt-silica.lisp,v 1.102 1996/03/13 09:56:15 colin Exp $
 
 (in-package :xm-silica)
 
@@ -944,7 +944,7 @@
 	(let ((mapping (text-style-mapping port text-style c)))
 	  (when mapping
 	    (push (cons c mapping) mappings))))
-      (reverse mappings)))))
+      (reverse mappings))))
 
 (defmethod font-set-from-font-list ((port xt-port) font-list)
   (let ((name ""))
@@ -958,7 +958,7 @@
 	    (setf (gethash name font-cache)
 	      (make-instance 'tk::font-set
 		:display (port-display port)
-		:base-names name)))))))
+		:base-names name))))))))
 
 (:-ics
 
diff --git a/tk/load-xm.lisp b/tk/load-xm.lisp
index 4df0796a08c7240574accf7df8bf497c63256887..e9135505a4636f3e24b081229c0214e4a837f0b1 100644
--- a/tk/load-xm.lisp
+++ b/tk/load-xm.lisp
@@ -17,24 +17,19 @@
 ;; Commercial Software developed at private expense as specified in
 ;; DOD FAR Supplement 52.227-7013 (c) (1) (ii), as applicable.
 ;;
-;; $fiHeader: load-xm.lisp,v 1.36 1995/11/08 06:14:05 georgej Exp $
+;; $fiHeader: load-xm.lisp,v 1.37 1996/03/13 09:56:03 colin Exp $
 
 (in-package :user)
 
 (require :climg)
 
 #+dlfcn
-(progn
-
-(defvar sys::*toolkit-static*
-    (or (ff:get-entry-point (ff:convert-to-lang "XmCreateMyDrawingArea")
+(unless (ff:get-entry-point (ff:convert-to-lang "XmCreateMyDrawingArea")
 			    :note-shared-library-references nil)
-	(prog1 nil
-	  (let ((ff::*dlopen-mode* (excl:ics-target-case
-				    (:+ics #x102)
-				    (:-ics ff::*dlopen-mode*))))
-	    (load "clim2:;climxm.so")))))
-)
+  (let ((ff::*dlopen-mode* (excl:ics-target-case
+			    (:+ics #x102)
+			    (:-ics ff::*dlopen-mode*))))
+    (load "clim2:;climxm.so")))
 
 #-dlfcn
 (progn
diff --git a/tk/xm-init.lisp b/tk/xm-init.lisp
index c6068b6eb289698dc2c964b3d93057bab93c5b45..a155a9b550132063f3ca612439915968a0d8ced1 100644
--- a/tk/xm-init.lisp
+++ b/tk/xm-init.lisp
@@ -19,7 +19,7 @@
 ;; Commercial Software developed at private expense as specified in
 ;; DOD FAR Supplement 52.227-7013 (c) (1) (ii), as applicable.
 ;;
-;; $fiHeader: xm-init.lisp,v 1.14 1995/06/21 21:24:22 georgej Exp $
+;; $fiHeader: xm-init.lisp,v 1.16 1995/11/08 06:15:03 georgej Exp $
 
 (in-package :tk)
 
@@ -33,14 +33,23 @@
   (setq *xm-done* t))
 
 
+;; We only want to reinitialize if the toolkit was linked in shared.
+;; Unfortunately there doesn't appear to be anyway of reliably
+;; finding this out. Experience would indicate that the default is
+;; to always link in the shared libraries except on rs6k (cim 3/14/96)
+
+#+dlfcn
+(defparameter *toolkit-static*
+    #+rs6000 t
+    #-rs6000 nil)
 
 #+dlfcn
 (defun reinitialize-toolkit ()
-  (xt_toolkit_initialize)
-  (setup-error-handlers)
-  (fixup-class-entry-points))
+  (unless *toolkit-static*
+    (xt_toolkit_initialize)
+    (setup-error-handlers)
+    (fixup-class-entry-points)))
 
 #+dlfcn
-(unless sys::*toolkit-static*
-  (push 'reinitialize-toolkit excl::*restart-actions*))
+(push 'reinitialize-toolkit excl::*restart-actions*)
 
diff --git a/wnn/load-wnn.lisp b/wnn/load-wnn.lisp
index a82a0e866883d204b78c2f4f59a412005f0dc424..4491315b91003ab375eed2a59c385b18ca2d9b4d 100644
--- a/wnn/load-wnn.lisp
+++ b/wnn/load-wnn.lisp
@@ -18,7 +18,7 @@
 ;; 52.227-19 or DOD FAR Supplement 252.227-7013 (c) (1) (ii), as
 ;; applicable.
 ;;
-;; $fiHeader: load-wnn.lisp,v 1.1 1995/10/20 17:42:19 colin Exp $
+;; $fiHeader: load-wnn.lisp,v 1.2 1996/03/13 09:56:55 colin Exp $
 
 (in-package :user)
 
@@ -36,8 +36,8 @@
 
 #+dlfcn
 (unless (ff:get-entry-point (ff:convert-to-lang "jl_open_lang"))
-  (cerror "Continue without jlib"
-	  "Can't load jlib dynamically - need to rebuild Lisp"))
+  (cerror "Continue without wnn"
+	  "Can't load Wnn/jlib dynamically - need to rebuild Lisp"))
 
 (provide :wnn)
 (pushnew :wnn *features*)