diff --git a/Misc/FAQ b/Misc/FAQ
index 76becaa..11f38a5 100644
--- a/Misc/FAQ
+++ b/Misc/FAQ
@@ -6,8 +6,8 @@
 Approved: news-answers-request@MIT.Edu
 
 Archive-name: python-faq/part1
-Version: 1.3
-Last-modified: 26 Jan 1994
+Version: 1.4
+Last-modified: 2 Feb 1994
 
 This article contains answers to Frequently Asked Questions about
 Python (an object-oriented interpreted programming language -- see
@@ -83,26 +83,39 @@
        find anything wrong with them.
   3.4. Q. I get an OverflowError on evaluating 2*2.  What is going on?
   3.5. Q. Trouble building Python 0.9.9 or earlier on platform X.
-  3.6. Q. Trouble building Python 1.0.0 on platform X.
+  3.6. Q. Link errors building Python with STDWIN on SGI Irix.
+  3.7. Q. Link errors for dlopen, dlsym, dlerror from import.o.
+  3.8. Q. Link errors after rerunning the configure script.
+  3.9. Q. The python interpreter complains about options passed to a
+       script (after the script name).
+  3.10. Q. When building on the SGI, make tries to run python to create
+        glmodule.c, but python hasn't been built or installed yet.
+  3.11. Q. Intermittent core dumps and complaints about perfectly valid
+        argument lists to built-in functions (e.g. posix.stat(filename) says
+        "no arguments needed").
+  3.12. Q. Trouble building Python 1.0.0 on NeXT.
+  3.13. Q. Other trouble building Python 1.0.0 on platform X.
 
  4. Programming in Python
-  4.1. Q. Can I create an object class with some methods implemented in
+  4.1. Q. Is there a source code level debugger with breakpoints, step,
+       etc.?
+  4.2. Q. Can I create an object class with some methods implemented in
        C and others in Python (e.g. through inheritance)?  (Also phrased as:
        Can I use a built-in type as base class?)
-  4.2. Q. I assign to a variable in a call to exec() but when I try to
-       use it on the next line I get an error.  What is going on?
-  4.3. Q. Why does that work?
-  4.4. Q. Is there a curses/termcap package for Python?
-  4.5. Q. Is there an equivalent to C's onexit() in Python?
-  4.6. Q. When I define a function nested inside another function, the
+  4.3. Q. Is there a curses/termcap package for Python?
+  4.4. Q. Is there an equivalent to C's onexit() in Python?
+  4.5. Q. When I define a function nested inside another function, the
        nested function seemingly can't access the local variables of the
        outer function.  What is going on?  How do I pass local data to a
        nested function?
-  4.7. Q. How do I iterate over a sequence in reverse order?
-  4.8. Q. My program is too slow.  How do I speed it up?
-  4.9. Q. When I have imported a module, then edit it, and import it
+  4.6. Q. How do I iterate over a sequence in reverse order?
+  4.7. Q. My program is too slow.  How do I speed it up?
+  4.8. Q. When I have imported a module, then edit it, and import it
        again (into the same Python process), the changes don't seem to take
        place.  What is going on?
+  4.9. Q. I have a module in which I want to execute some extra code when it
+       is run as a script.  How do I find out whether I am running as a
+       script?
 
  5. Extending Python
   5.1. Q. Can I create my own functions in C?
@@ -363,7 +376,54 @@
 
 Please convert to Python 1.0.0 -- it is much more portable.
 
-3.6. Q. Trouble building Python 1.0.0 on platform X.
+3.6. Q. Link errors building Python with STDWIN on SGI IRIX.
+
+A. Rebuild STDWIN, specifying "CC=cc -cckr" in the Makefile.
+
+3.7. Q. Link errors for dlopen, dlsym, dlerror from import.o.
+
+A. You are probably using the GNU loader which doesn't understand
+dynamic linking.  Manually comment out #define HAVE_DLFCN_H from
+config.h.  (Should be fixed in 1.0.1.)
+
+3.8. Q. Link errors after rerunning the configure script.
+
+A. It is generally necessary to run "make clean" after a configuration
+change.
+
+3.9. Q. The python interpreter complains about options passed to a
+script (after the script name).
+
+A. You are probably linking with GNU getopt, e.g. through -liberty.
+Don't.  (If you are using this because you link with -lreadline, use
+the readline distributed with Python instead.)
+
+3.10. Q. When building on the SGI, make tries to run python to create
+glmodule.c, but python hasn't been built or installed yet.
+
+A. Comment out the line mentioning glmodule.c in Setup and build a
+python without gl first; install it or make sure it is in your $PATH,
+then edit the Setup file again to turn on the gl module, and make
+again.  You don't need to do "make clean"; you do need to run "make
+Makefile" in the Modules subdirectory (or just run "make" at the
+toplevel).
+
+3.11. Q. Intermittent core dumps and complaints about perfectly valid
+argument lists to built-in functions (e.g. posix.stat(filename) says
+"no arguments needed").
+
+A. You are probably using <stdarg.h> instead of <varargs.h>, or the
+other way around.  It may also be that your <stdarg.h> or <varargs.h>
+does not match the code generated by your compiler.  In simple cases,
+it may help to turn comment out the #define HAVE_STDARG_H from the
+generated config.h.
+
+3.12. Q. Trouble building Python 1.0.0 on NeXT.
+
+A. Manually add #define _POSIX_SOURCE to config.h.  (Should be fixed
+in 1.0.1.)
+
+3.13. Q. Other trouble building Python 1.0.0 on platform X.
 
 A. Please email the details to <guido@cwi.nl> and I'll look into it.
 
@@ -371,7 +431,15 @@
 4. Programming in Python
 ========================
 
-4.1. Q. Can I create an object class with some methods implemented in
+4.1. Q. Is there a source code level debugger with breakpoints, step,
+etc.?
+
+A. Yes.  Check out module pdb; pdb.help() prints the documentation (or
+you can read it as Lib/pdb.doc).  If you use the STDWIN option,
+there's also a windowing interface, wdb.  You can write your own
+debugger by using the code for pdb or wdb as an example.
+
+4.2. Q. Can I create an object class with some methods implemented in
 C and others in Python (e.g. through inheritance)?  (Also phrased as:
 Can I use a built-in type as base class?)
 
@@ -397,30 +465,7 @@
 		def values(self): return self.data.values()
 		def has_key(self, key): return self.data.has_key(key)
 
-4.2. Q. I assign to a variable in a call to exec() but when I try to
-use it on the next line I get an error.  What is going on?
-
-A. The reason why this occurs is too complicated to explain (but see
-the next question).  To fix it is easy, however: simply assign None to
-the variable *before* calling exec().  This will be fixed in the 1.0
-release.
-
-4.3. Q. Why does that work?
-
-A. When parsing your program and converting it into internal pseudo
-code, the interpreter does some optimizations to speed up function
-execution: it figures out the names of all the local variables and
-treats them specially.  Because your assignment is done by exec(), it
-is not seen initially by the parser and the variable is not recognized
-as a local variable.  The default treatment is as a global variable,
-but the exec() statement places it in the local scope, where it is not
-found.  This will be fixed in release 1.0 by making exec into a
-statement; the parser will then be able to switch off the
-optimizations for local variables if it encounters an exec statement
-(recognizing calls to built-in functions is not possible for the
-parser, hence the syntax change to a statement).
-
-4.4. Q. Is there a curses/termcap package for Python?
+4.3. Q. Is there a curses/termcap package for Python?
 
 A. No, but you can use the "alfa" (== character cell) version of
 STDWIN.  (STDWIN == Standard Windows, a portable windowing system
@@ -428,13 +473,13 @@
 This will also prepare your program for porting to windowing
 environments such as X11 or the Macintosh.
 
-4.5. Q. Is there an equivalent to C's onexit() in Python?
+4.4. Q. Is there an equivalent to C's onexit() in Python?
 
 A. Yes, if you import sys and assign a function to sys.exitfunc, it
 will be called when your program exits, is killed by an unhandled
 exception, or (on UNIX) receives a SIGHUP or SIGTERM signal.
 
-4.6. Q. When I define a function nested inside another function, the
+4.5. Q. When I define a function nested inside another function, the
 nested function seemingly can't access the local variables of the
 outer function.  What is going on?  How do I pass local data to a
 nested function?
@@ -457,7 +502,7 @@
 	print twice(10)
 	# Output: 20
 
-4.7. Q. How do I iterate over a sequence in reverse order?
+4.6. Q. How do I iterate over a sequence in reverse order?
 
 A. If it is a list, the fastest solution is
 
@@ -505,7 +550,7 @@
 Unfortunately, this solution is slowest of all, due the the method
 call overhead...
 
-4.8. Q. My program is too slow.  How do I speed it up?
+4.7. Q. My program is too slow.  How do I speed it up?
 
 A. That's a tough one, in general.  There are many tricks to speed up
 Python code; I would consider rewriting parts in C only as a last
@@ -520,7 +565,7 @@
 -- the profiling itself can slow your program down by an order of
 magnitude).
 
-4.9. Q. When I have imported a module, then edit it, and import it
+4.8. Q. When I have imported a module, then edit it, and import it
 again (into the same Python process), the changes don't seem to take
 place.  What is going on?
 
@@ -541,6 +586,18 @@
 will continue to work with the old version of the objects imported
 thus.
 
+4.9. Q. I have a module in which I want to execute some extra code when it
+is run as a script.  How do I find out whether I am running as a
+script?
+
+A. A module can find out its own module name by alooking at the
+(predefined) global variable __name__.  If this has the value
+'__main__' you are running as a script.  E.g. if you put the following
+on the last line of your module, main() is called only when your
+module is running as a script:
+
+	if __name__ == '__main__': main()
+
 
 5. Extending Python
 ===================
@@ -548,9 +605,9 @@
 5.1. Q. Can I create my own functions in C?
 
 A. Yes, you can create built-in modules containing functions,
-variables, exceptions and even new types in C.  This is all explained
-in the file "python/misc/EXTENDING".  Also read the file "DYNLOAD"
-there for hints on how to load such extension modules
+variables, exceptions and even new types in C.  This is explained in
+the document "Extending and Embedding the Python Interpreter" (the
+LaTeX file Doc/ext.tex).  Also read the chapter on dynamic loading.
 
 5.2. Q. Can I create my own functions in C++?
 
