Index: gbbopen.asd
===================================================================
--- gbbopen.asd	(revision 1168)
+++ gbbopen.asd	(working copy)
@@ -38,16 +38,11 @@
 
 ;;; ---------------------------------------------------------------------------
 
-(let ((truename *load-truename*))
-  (load (make-pathname 
-	 :name "initiate"
-	 :type "lisp"
-	 :defaults truename))
+(let ((gbbopen-directory *load-truename*))
+  (load (asdf::subpathname gbbopen-directory "initiate.lisp"))
   (defparameter *gbbopen-version*
-      (with-open-file (version-file 
-                       (make-pathname :name "VERSION"
-                                      :type nil
-                                      :defaults truename))
+      (with-open-file (version-file
+                       (asdf::subpathname gbbopen-directory "VERSION"))
         (read version-file))))
 
 ;;; ===========================================================================
@@ -79,7 +74,7 @@
 
 (defun mm-component-defsystem (module-name &optional no-components-p)
   (eval `(asdf:defsystem ,module-name
-             :description 
+             :description
                ,(if (eq ':gbbopen module-name)
                     "The GBBopen blackboard-system framework"
                     (format nil
@@ -92,11 +87,6 @@
 	     ,@(unless no-components-p
                  `(:components ((:mm-component ,module-name)))))))
 
-;;; ---------------------------------------------------------------------------
-
-(defun mm-component-undefsystem (module-name)
-  (remhash module-name asdf::*defined-systems*))
-
 ;;; ===========================================================================
 ;;;  Module-Manager ASDF component
 
@@ -139,27 +129,6 @@
 ;;;  We have trivially completed all of the :gbbopen system operations by
 ;;;  loading this file:
 
-(defclass gbbopen (asdf:component)
-  ())
-
-(defmethod asdf:component-pathname ((component gbbopen))
-  nil)
-
-(defmethod asdf:operation-done-p ((op asdf:compile-op) (component gbbopen))
-  t)
-
-(defmethod asdf:operation-done-p ((op asdf:load-op) (component gbbopen))
-  t)
-
-(defmethod asdf:operation-done-p ((op asdf:load-source-op) (component gbbopen))
-  t)
-
-(defmethod asdf:perform ((op asdf:compile-op) (component gbbopen)))
-
-(defmethod asdf:perform ((op asdf:load-op) (component gbbopen)))
-
-(defmethod asdf:perform ((op asdf:load-source-op) (component gbbopen)))
-
 (mm-component-defsystem :gbbopen 't)
 
 ;;; ===========================================================================
Index: README
===================================================================
--- README	(revision 1168)
+++ README	(working copy)
@@ -163,7 +163,7 @@
 up GBBopen, you must add gbbopen.asd to ASDF manually.  Then, the Module
 Manager and GBBopen module definitions can be loaded using ASDF by issuing:
 
-  > (asdf:operate 'asdf:load-op :gbbbopen)
+  > (asdf:load-system :gbbopen)
 
 or when ASDF is integrated with Common Lisp's REQUIRE:
 
Index: source/module-manager/module-manager.lisp
===================================================================
--- source/module-manager/module-manager.lisp	(revision 1168)
+++ source/module-manager/module-manager.lisp	(working copy)
@@ -1650,8 +1650,7 @@
 (defun undefine-module (name)
   (get-module name)                     ; check that it is defined.
   ;; Remove ADSF component definition, if gbbopen.asd has been loaded:
-  (when (fboundp 'mm-component-undefsystem)
-    (funcall 'mm-component-undefsystem name))
+  (asdf:clear-system name)
   (remhash name *mm-modules*))
 
 ;;; ---------------------------------------------------------------------------
