diff --git a/ChangeLog.n b/ChangeLog.n
index 811516e5a07b44648ba6b7cf64ea66d052fcba61..509414b7958318f8980db15dc10d06331a0b1402 100644
--- a/ChangeLog.n
+++ b/ChangeLog.n
@@ -1,3 +1,10 @@
+from colin: Fri Sep 17 11:34:06 PDT 1993
+
+demo/demo-driver.lisp
+demo/demo-activity.lisp		fixed problem activity demo
+
+-------------------------------------------------------------------------------
+
 Thu Sep 16 22:26:58 1993  Duane Rettig  (duane at clay)
 
 	* Makefile.defs: Parameterize composer CL_SRC directory
@@ -12,6 +19,8 @@ Thu Sep 16 22:26:58 1993  Duane Rettig  (duane at clay)
 
 	* misc/dev-load-1.lisp: Set update-entry-points to nil for speed
 
+-------------------------------------------------------------------------------
+
 from colin: Thu Sep 16 17:17:55 PDT 1993
 
 clim/completer.lisp		fix to clim2bug600
diff --git a/demo/demo-activity.lisp b/demo/demo-activity.lisp
index 86da770c7bf389612b8ee2c858080f19178c6903..cd86f296504db5c6440310a4d392ebce325990ce 100644
--- a/demo/demo-activity.lisp
+++ b/demo/demo-activity.lisp
@@ -1,6 +1,6 @@
 ;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Package: CLIM-DEMO; Base: 10; Lowercase: Yes -*-
 
-;; $fiHeader: demo-activity.lisp,v 1.7 1993/06/04 16:06:29 cer Exp $
+;; $fiHeader: demo-activity.lisp,v 1.8 1993/09/17 00:20:28 colin Exp $
 
 (in-package :clim-demo)
 
@@ -71,4 +71,4 @@
 
 
 
-(define-demo "Activity Demo" activity-frame)
+(define-demo "Activity Demo" demo-activity)
diff --git a/demo/demo-driver.lisp b/demo/demo-driver.lisp
index df0580e61305addc1b7ad25d30fe38316d9e5eff..6bcc182d164a68623c4219cc39e8b29c0d4b7c78 100644
--- a/demo/demo-driver.lisp
+++ b/demo/demo-driver.lisp
@@ -1,6 +1,6 @@
 ;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Package: CLIM-DEMO; Base: 10; Lowercase: Yes -*-
 
-;; $fiHeader: demo-driver.lisp,v 1.24 1993/07/27 01:45:21 colin Exp $
+;; $fiHeader: demo-driver.lisp,v 1.25 1993/09/17 00:20:30 colin Exp $
 
 (in-package :clim-demo)
 
@@ -16,10 +16,10 @@
 
 (defmacro define-demo (name class &rest initargs)
   (let ((do-name (clim-utils:fintern "~A-~A" 'do class)))
-    `(let ((demo (make-instance 'demo :name ,name 
-				:class ',class :initargs ',initargs)))
+    `(let ((demo (make-instance 'demo 
+		   :name ,name :class ',class :initargs ',initargs)))
        (clim-utils:push-unique demo
-			       *demos* :test #'string-equal :key #'demo-name)
+	 *demos* :test #'string-equal :key #'demo-name)
        (defun ,do-name (&rest args)
 	 (apply #'run-demo demo args)))))
 
@@ -66,25 +66,27 @@
 
 (defun run-demo (demo &key (port (find-port)) force)
   (let* ((entry (assoc port (demo-frames demo)))
-	 (frame (cdr entry)))
+	 (frame (cdr entry))
+	 (activity-p (subtypep (demo-class demo) 'activity)))
     (when (or force (null frame))
-      (setq frame (apply #'make-application-frame
+      (setq frame (apply (if activity-p
+			     #'make-instance
+			   #'make-application-frame)
 			 (demo-class demo)
 			 :frame-manager (find-frame-manager :port port)
 			 (demo-initargs demo))))
     (if entry
 	(setf (cdr entry) frame)
       (push (cons port frame) (demo-frames demo)))
-    (case (frame-state frame)
-      ((:enabled :shrunk)
-       (note-frame-deiconified (frame-manager frame) frame)
-       (raise-frame frame))
-      (t
-       (run-frame-top-level frame)))))
-
-(let ((demo (make-instance 'demo :name "Demo Driver"
-			   :class 'demo-driver
-			   :initargs '(:left 0 :top 0))))
+    (if (slot-value frame 'clim-internals::top-level-process)
+	(unless activity-p
+	  (note-frame-deiconified (frame-manager frame) frame)
+	  (raise-frame frame))
+      (run-frame-top-level frame))))
+
+(let ((demo (make-instance 'demo
+	      :name "Demo Driver" :class 'demo-driver
+	      :initargs '(:left 0 :top 0))))
   (defun start-demo (&rest args)
     (apply #'run-demo demo args)))