diff --git a/Lib/pdb.doc b/Lib/pdb.doc
index 43a91c2..2844f80 100644
--- a/Lib/pdb.doc
+++ b/Lib/pdb.doc
@@ -44,9 +44,10 @@
 =================
 
 h(elp)
-	Without argument, print the list of available commands.
-	With a command name as argument, print help about that command
-	(this is currently not implemented).
+        Without argument, print the list of available commands.
+        With a command name as argument, print help about that command
+        "help pdb" pipes the full documentation file to the $PAGER
+        "help exec" gives help on the ! command
 
 w(here)
 	Print a stack trace, with the most recent frame at the bottom.
@@ -61,15 +62,25 @@
 	Move the current frame one level up in the stack trace
 	(to a newer frame).
 
-b(reak) [lineno | function]
-	With a line number argument, set a break there in the current
-	file.  With a function name, set a break at the entry of that
-	function.  Without argument, list all breaks.
+b(reak) ([file:]lineno | function) [, "condition"]
+        With a line number argument, set a break there in the current
+        file.  With a function name, set a break at the entry of that
+        function.  Without argument, list all breaks.  If a second
+        argument is present, it is a string specifying an expression
+        which must evaluate to true before the breakpoint is honored.
+
+        The line number may be prefixed with a filename and a colon,
+        to specify a breakpoint in another file (probably one that
+        hasn't been loaded yet).  The file is searched on sys.path.
 
 cl(ear) [lineno]
 	With a line number argument, clear that break in the current file.
 	Without argument, clear all breaks (but first ask confirmation).
 
+        The line number may be prefixed with a filename and a colon,
+        to specify a breakpoint in another file (probably one that
+        hasn't been loaded yet).  The file is searched on sys.path.
+
 s(tep)
 	Execute the current line, stop at the first possible occasion
 	(either in a function that is called or in the current function).
@@ -111,56 +122,3 @@
 q(uit)
 	Quit from the debugger.
 	The program being executed is aborted.
-
-
-How it works
-============
-
-Some changes were made to the interpreter:
-- sys.settrace(func) sets the global trace function
-- there can also a local trace function (see later)
-
-Trace functions have three arguments: (frame, event, arg)
-  - frame is the current stack frame
-  - event is a string: 'call', 'line', 'return' or 'exception'
-  - arg is dependent on the event type
-A trace function should return a new trace function or None.
-Class methods are accepted (and most useful!) as trace methods.
-
-The events have the following meaning:
-
-  'call':      A function is called (or some other code block entered).
-               The global trace function is called;
-               arg is the argument list to the function;
-               the return value specifies the local trace function.
-
-  'line':      The interpreter is about to execute a new line of code
-               (sometimes multiple line events on one line exist).
-               The local trace function is called; arg in None;
-               the return value specifies the new local trace function.
-
-  'return':    A function (or other code block) is about to return.
-               The local trace function is called;
-               arg is the value that will be returned.
-               The trace function's return value is ignored.
-
-  'exception': An exception has occurred.
-               The local trace function is called;
-               arg is a triple (exception, value, traceback);
-               the return value specifies the new local trace function
-
-Note that as an exception is propagated down the chain of callers, an
-'exception' event is generated at each level.
-
-Stack frame objects have the following read-only attributes:
-  f_code:      the code object being executed
-  f_lineno:    the current line number (-1 for 'call' events)
-  f_back:      the stack frame of the caller, or None
-  f_locals:    dictionary containing local name bindings
-  f_globals:   dictionary containing global name bindings
-
-Code objects have the following read-only attributes:
-  co_code:     the code string
-  co_names:    the list of names used by the code
-  co_consts:   the list of (literal) constants used by the code
-  co_filename: the filename from which the code was compiled
