Index: /trunk/ccl/examples/objc-clos.lisp
===================================================================
--- /trunk/ccl/examples/objc-clos.lisp	(revision 548)
+++ /trunk/ccl/examples/objc-clos.lisp	(revision 549)
@@ -756,5 +756,5 @@
     ;; Initialize CLOS slots
     (dolist (slotd (class-slots class))
-      (when (not (typep slotd 'foreign-direct-slot-definition)) ; For now
+      (when (not (typep slotd 'foreign-effective-slot-definition)) ; For now
 	(let ((sname (slot-definition-name slotd))
 	      (slot-type (slot-definition-type slotd))
@@ -769,5 +769,7 @@
 		    (setf (slot-value instance sname) newval)
 		  (report-bad-arg newval slot-type))
-	      (let ((curval (slot-value instance sname)))
+	      (let* ((loc (slot-definition-location slotd))
+		     (curval (%standard-instance-instance-location-access
+			     instance loc)))
 		(when (and (or (eq slot-names t) 
 			       (member sname slot-names :test #'eq))
@@ -776,5 +778,8 @@
 		  (let ((newval (funcall initfunction)))
 		    (unless (funcall typepred newval)
-		      (report-bad-arg newval slot-type))))))))))
+		      (report-bad-arg newval slot-type))
+		    (setf (%standard-instance-instance-location-access
+			   instance loc)
+			  newval)))))))))
     instance))
 
