diff --git a/bundle.lisp b/bundle.lisp
index b4b125dc6223c9fc8b1a516ed810ed86ec383acb..7a5f3204c125e336117c20e6bd0b1bf7347ed2ae 100644
--- a/bundle.lisp
+++ b/bundle.lisp
@@ -99,8 +99,14 @@ itself.")) ;; operation on a system and its dependencies
   (defclass lib-op (link-op gather-op non-propagating-operation)
     ((gather-type :initform :object :allocation :class)
      (bundle-type :initform :lib :allocation :class))
-    (:documentation "Compile the system and produce linkable (.a) library for it.
-Compare with DLL-OP."))
+    (:documentation "Compile the system and produce a linkable static library (.a/.lib)
+for all the linkable object files associated with the system. Compare with DLL-OP.
+
+On most implementations, these object files only include extensions to the runtime
+written in C or another language with a compiler producing linkable object files.
+On CLASP, ECL, MKCL, these object files also include the contents of Lisp files
+themselves. In any case, this operation will produce what you need to further build
+a static runtime for your system, or a dynamic library to load in an existing runtime."))
 
   (defclass compile-bundle-op (basic-compile-bundle-op selfward-operation
                                #+(or clasp ecl mkcl) link-op #-(or clasp ecl) gather-op)
@@ -126,8 +132,8 @@ faster and more resource efficient."))
   (defclass dll-op (link-op gather-op non-propagating-operation)
     ((gather-type :initform :object :allocation :class)
      (bundle-type :initform :dll :allocation :class))
-    (:documentation "compile the system and produce dynamic (.so/.dll) library for it.
-Compare with LIB-OP."))
+    (:documentation "Compile the system and produce a dynamic loadable library (.so/.dll)
+for all the linkable object files associated with the system. Compare with LIB-OP."))
 
   (defclass deliver-asd-op (basic-compile-op selfward-operation)
     ((selfward-operation
@@ -161,11 +167,13 @@ Compare with LIB-OP."))
 
   (defclass monolithic-lib-op (monolithic-bundle-op lib-op non-propagating-operation)
     ((gather-type :initform :static-library :allocation :class))
-    (:documentation "Create a single linkable library for the system and its dependencies."))
+    (:documentation "Compile the system and produce a linkable static library (.a/.lib)
+for all the linkable object files associated with the system or its dependencies. See LIB-OP."))
 
   (defclass monolithic-dll-op (monolithic-bundle-op dll-op non-propagating-operation)
     ((gather-type :initform :static-library :allocation :class))
-    (:documentation "Create a single dynamic (.so/.dll) library for the system and its dependencies."))
+    (:documentation "Compile the system and produce a dynamic loadable library (.so/.dll)
+for all the linkable object files associated with the system or its dependencies. See LIB-OP"))
 
   (defclass image-op (monolithic-bundle-op selfward-operation
                       #+(or clasp ecl mkcl) link-op #+(or clasp ecl mkcl) gather-op)
diff --git a/uiop/run-program.lisp b/uiop/run-program.lisp
index 4c8fab316bab6d7be0d0b2b523a87b28d2c0171c..9cf4f52dda35614e25fe8d775191685a894e9fdf 100644
--- a/uiop/run-program.lisp
+++ b/uiop/run-program.lisp
@@ -838,7 +838,9 @@ It returns a process-info plist with possible keys:
                       &allow-other-keys)
     "Run program specified by COMMAND,
 either a list of strings specifying a program and list of arguments,
-or a string specifying a shell command (/bin/sh on Unix, CMD.EXE on Windows).
+or a string specifying a shell command (/bin/sh on Unix, CMD.EXE on Windows);
+_synchronously_ process its output as specified and return the processing results
+when the program and its output processing are complete.
 
 Always call a shell (rather than directly execute the command when possible)
 if FORCE-SHELL is specified.  Similarly, never call a shell if FORCE-SHELL is