diff --git a/BUGS b/BUGS
index 10ed20f..f999708 100644
--- a/BUGS
+++ b/BUGS
@@ -6,10 +6,28 @@
 ==> Status indicators: (-) not fixed; (*) fixed; (?) not sure.
 
 ======================================================================
-Known BUGS in 1.1.1 and 1.2
----------------------------
+Known BUGS in 1.2 BETA 1, fixed in 1.2 BETA 2
+---------------------------------------------
 
-(-) a file with unmatched triple quotes causes a loop in the scanner
+(*) list slice assignment contains reantrancy bug
+
+(*) range() and xrange() break on Alpha's
+
+(*) interactive use of vars() gives barrage of output due to recursive
+inclusion of '_'
+
+(*) configure.in contains bogus name to check for inet library
+
+Known BUGS in 1.1.1 and 1.2 BETA 1
+----------------------------------
+
+(*) a file with unmatched triple quotes causes a loop in the scanner
+
+(-) still a memory leak in threads; bigger when thread.exit_thread()
+is used
+
+Problems in 1.1.1 that are difficult to solve
+---------------------------------------------
 
 (-) tkinter seems to leave an exception around sometime which breaks
 unmarshalling code objects [hard to reproduce, have added a trap to
diff --git a/ChangeLog b/ChangeLog
index 8fa2151..50bb055 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,80 @@
-Thu Jan 12 12:27:23 1995  Guido van Rossum  <guido@voorn.cwi.nl>
+Tue Jan 17 11:24:23 1995  Guido van Rossum  <guido@zeus.cwi.nl>
+
+	* Makefile.pre.in: be more careful about building 
+	Modules/Makefile.pre
+
+	* Objects/floatobject.c: test for __STDC__ instead of macintosh de
+	decide whether to declare fmod() and pow() -- this works in
+	mathomodule.c so why not here...
+
+	* Objects/rangeobject.c: made a few things static
+
+	* Objects/longobject.c, Include/{longobject.h,rename2.h}:
+	long_scan is now a macro that calls long_escan; long_scan no
+	longer exists
+
+	* Objects/object.c (strobject): use tp_str and only try __str__ if
+	it's an instance
+
+	* configure.in: hopefully final changes for Sequent's -linet
+
+	* README: add hint for NeXT users to use --without-gcc
+
+	* Python/{bltinmodule.c,ceval.c}, Objects/frameobject.c:
+	initialize __builtins__ from built-in *module* instead of *dict*,
+	to prevent interactive vars() call to loop recursively
+
+	* Python/bltinmodule.c: fix Alpha bug in range and xrange --
+	sizeof(int) != sizeof(long)
+
+	* Python/mystrtoul.c: include rename2.h
+
+	* Modules/*: made things static and general clean-up for new
+	naming scheme
+
+	* Include/*.h: new names for lots of new functions
+
+	* Lib/rexec.py: no need for distrusting dir() or vars(), changed
+	open() to allow everything (for reading) except /etc/*
+
+	* Mac/macmain.c: include rename2.h
+
+	* */Makefile*in: added harmless $& to $(LIB) target for Sequent
+	parallel make
+
+	* Parser/tokenizer.c: fix loop on unterminated triple quotes
+
+	* Parser/intrcheck.c: made 'interrupted' flag static again
+
+	* Objects/listobject.c (list_ass_slice): free recycling bin when
+	making early exit due to memory error
+
+	* Objects/listobject.c, Include/{listobject.h,rename2.h}: added
+	reverselist, C interface to list.reverse().
+
+	* Object/listobject.c (list_ass_slice): fixed re-entrancy bug
+	(noticed by Jim Roskind) 
+
+Sat Jan 14 11:21:29 1995  Guido van Rossum  <guido@zeus.cwi.nl>
+
+	* Python/modsupport.c (PyEval_CallMethod): changed method argument
+	name to methodname -- since method is also a typedef and some
+	compiler choke on this (e.g. HP) (Andrew Kuchling)
+
+	* Python/thread.c: added #include thread_nt.h (Mark Hammond)
+
+	* Demo/scripts/h2py.py: support $include or $INCLUDE path instead
+	of only using /usr/include (Mark Hammond)
 
 	* Python/ceval.c (eval_code/PRINT_EXPR): fix messed output when
 	x.__repr__() prints something and repr(x) is called at the prompt
 
+========================================
+==> Release 1.2 BETA 1 (12 Jan 1995) <==
+========================================
+
+Thu Jan 12 12:27:23 1995  Guido van Rossum  <guido@voorn.cwi.nl>
+
 	* Python/pythonrun.c (initmain), Python/import.c
 	(exec_code_module): use getbuiltins(), not getbuiltindict() to
 	initialize new modules
diff --git a/TODO b/TODO
index 721d80c..35280a2 100644
--- a/TODO
+++ b/TODO
@@ -1,3 +1,9 @@
+(-) always use my getopt.c
+
+(-) get Extensions/X11/Doc checked in and out
+
+(-) investigate PPRC <URL:ftp://ftp.parc.xerox.com/pub/ppcr/>
+
 (*) add buffering parameter to fdopen() and popen()
 
 (-) "f()=0" generates syntax error msg without line number
diff --git a/configure b/configure
index 74b6b77..177b42a 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-# From configure.in Revision: 1.14 
+# From configure.in Revision: 1.15 
 
 # Guess values for system-dependent variables and create Makefiles.
 # Generated automatically using autoconf version 2.0 
@@ -1415,7 +1415,7 @@
 
 int main() { return 0; }
 int t() {
-gethostbyname()
+t_open()
 ; return 0; }
 EOF
 if eval $ac_link; then
@@ -1435,20 +1435,20 @@
 else
   echo "$ac_t""no" 1>&4
 fi
- # hosts db interface
+ # SVR4
 echo $ac_n "checking for -linet""... $ac_c" 1>&4
 if eval "test \"`echo '${'ac_cv_lib_inet'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&4
 else
   ac_save_LIBS="$LIBS"
-LIBS="$LIBS -linet "
+LIBS="$LIBS -linet -lnsl"
 cat > conftest.$ac_ext <<EOF
 #line 1447 "configure"
 #include "confdefs.h"
 
 int main() { return 0; }
 int t() {
-???()
+gethostbyname()
 ; return 0; }
 EOF
 if eval $ac_link; then
@@ -1468,13 +1468,13 @@
 else
   echo "$ac_t""no" 1>&4
 fi
- # SVR4 internet???
+ # Sequent
 echo $ac_n "checking for -lsocket""... $ac_c" 1>&4
 if eval "test \"`echo '${'ac_cv_lib_socket'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&4
 else
   ac_save_LIBS="$LIBS"
-LIBS="$LIBS -lsocket "
+LIBS="$LIBS -lsocket $LIBS"
 cat > conftest.$ac_ext <<EOF
 #line 1480 "configure"
 #include "confdefs.h"
