diff --git a/README b/README
index add7455af7572246735a202da988a31931f641b3..710fa66ab8dff492d63d523a9203c6d92d97883b 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-$Id: README,v 1.33 2003/05/28 20:00:42 kevinrosenberg Exp $         -*- Text -*-
+$Id: README,v 1.34 2003/06/03 22:16:28 dan_b Exp $         -*- Text -*-
 
 
 asdf: another system definition facility          
@@ -716,9 +716,32 @@ propagate only something like ":force :recursively". ''
 Ideally what we actually want is some kind of criterion that says
 to which systems (and which operations) a :force switch will propagate.
 
-(defgeneric operation-propagates-force-p (operation component))
+The problem is perhaps that 'force' is a pretty meaningless concept.
+How obvious is it that "load :force t" should force _compilation_?
+But we don't really have the right dependency setup for the user to
+compile :force t and expect it to work (files will not be loaded after
+compilation, so the compile environment for subsequent files will be
+emptier than it needs to be)
 
-make-sub-operation would call this
+What does the user actually want to do when he forces?  Usually, for
+me, update for use with a new version of the lisp compiler.  Perhaps
+for recovery when he suspects that something has gone wrong.  Or else
+when he's changed compilation options or configuration in some way
+that's not reflected in the dependency graph.
 
+Other possible interface: have a 'revert' function akin to 'make clean'
 
+  (asdf:revert 'asdf:compile-op 'araneida) 
 
+would delete any files produced by 'compile-op 'araneida.  Of course, it
+wouldn't be able to do much about stuff in the image itself.
+
+How would this work?
+
+traverse
+
+There's a difference between a module's dependencies (peers) and its
+components (children).  Perhaps there's a similar difference in
+operations?  For example, (load "use") depends-on (load "macros") is a
+peer, whereas (load "use") depends-on (compile "use") is more of a
+`subservient' relationship.
\ No newline at end of file
diff --git a/asdf.lisp b/asdf.lisp
index 17b0a1c087be1ac55cb0d44aaa4949b038409a17..e204c377aa1d0fb1c403f8839cc1af3d72dd2ac0 100644
--- a/asdf.lisp
+++ b/asdf.lisp
@@ -1,4 +1,4 @@
-;;; This is asdf: Another System Definition Facility.  $Revision: 1.74 $
+;;; This is asdf: Another System Definition Facility.  $Revision: 1.75 $
 ;;;
 ;;; Feedback, bug reports, and patches are all welcome: please mail to
 ;;; <cclan-list@lists.sf.net>.  But note first that the canonical
@@ -94,7 +94,7 @@
 
 (in-package #:asdf)
 
-(defvar *asdf-revision* (let* ((v "$Revision: 1.74 $")
+(defvar *asdf-revision* (let* ((v "$Revision: 1.75 $")
 			       (colon (or (position #\: v) -1))
 			       (dot (position #\. v)))
 			  (and v colon dot 
@@ -1046,10 +1046,12 @@ output to *verbose-out*.  Returns the shell's exit code."
 #+(and sbcl sbcl-hooks-require)
 (progn
   (defun module-provide-asdf (name)
-    (let ((system (asdf:find-system name nil)))
-      (when system
-	(asdf:operate 'asdf:load-op name)
-	t)))
+    (handler-bind ((style-warning #'muffle-warning))
+      (let* ((*verbose-out* (make-broadcast-stream))
+	     (system (asdf:find-system name nil)))
+	(when system
+	  (asdf:operate 'asdf:load-op name)
+	  t))))
 
   (pushnew
    '(merge-pathnames "systems/"