diff --git a/Lib/pty.py b/Lib/pty.py
index a08aa1b..1a41f17 100644
--- a/Lib/pty.py
+++ b/Lib/pty.py
@@ -86,7 +86,17 @@
     opened filedescriptor.
     Deprecated, use openpty() instead."""
 
-    return os.open(tty_name, os.O_RDWR)
+    result = os.open(tty_name, os.O_RDWR)
+    try:
+        from fcntl import ioctl, I_PUSH
+    except ImportError:
+        return result
+    try:
+       ioctl(result, I_PUSH, "ptem")
+       ioctl(result, I_PUSH, "ldterm")
+    except IOError:
+        pass
+    return result
 
 def fork():
     """fork() -> (pid, master_fd)
diff --git a/Misc/NEWS b/Misc/NEWS
index 6a7c30d..e49f17e 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -4,6 +4,44 @@
 
 (editors: check NEWS.help for information about editing NEWS using ReST.)
 
+What's New in Python 2.3 alpha 2?
+=================================
+
+*Release date: XX-XXX-2003
+
+Core and builtins
+-----------------
+
+Extension modules
+-----------------
+
+- fcntl now exposes the strops.h I_* constants.
+
+Library
+-------
+
+Tools/Demos
+-----------
+
+Build
+-----
+
+C API
+-----
+
+New platforms
+-------------
+
+Tests
+-----
+
+Windows
+-------
+
+Mac
+---
+
+
 What's New in Python 2.3 alpha 1?
 =================================
 
diff --git a/Modules/fcntlmodule.c b/Modules/fcntlmodule.c
index 360b54e..c5d9b4d 100644
--- a/Modules/fcntlmodule.c
+++ b/Modules/fcntlmodule.c
@@ -9,7 +9,9 @@
 
 #include <sys/ioctl.h>
 #include <fcntl.h>
-
+#ifdef HAVE_STROPTS_H
+#include <stropts.h>
+#endif
 
 static int
 conv_descriptor(PyObject *object, int *target)
@@ -337,6 +339,8 @@
         return 0;
 }
 
+#define INS(x) if (ins(d, #x, (long)x)) return -1
+
 static int
 all_ins(PyObject* d)
 {
@@ -459,6 +463,39 @@
         if (ins(d, "DN_MULTISHOT", (long)DN_MULTISHOT)) return -1;
 #endif
 
+#ifdef HAVE_STROPTS_H
+	/* Unix 98 guarantees that these are in stropts.h. */
+	INS(I_PUSH);
+	INS(I_POP);
+	INS(I_LOOK);
+	INS(I_FLUSH);
+	INS(I_FLUSHBAND);
+	INS(I_SETSIG);
+	INS(I_GETSIG);
+	INS(I_FIND);
+	INS(I_PEEK);
+	INS(I_SRDOPT);
+	INS(I_GRDOPT);
+	INS(I_NREAD);
+	INS(I_FDINSERT);
+	INS(I_STR);
+	INS(I_SWROPT);
+	INS(I_GWROPT);
+	INS(I_SENDFD);
+	INS(I_RECVFD);
+	INS(I_LIST);
+	INS(I_ATMARK);
+	INS(I_CKBAND);
+	INS(I_GETBAND);
+	INS(I_CANPUT);
+	INS(I_SETCLTIME);
+	INS(I_GETCLTIME);
+	INS(I_LINK);
+	INS(I_UNLINK);
+	INS(I_PLINK);
+	INS(I_PUNLINK);
+#endif
+	
 	return 0;
 }
 
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index dff478a..cce8011 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -2726,8 +2726,8 @@
 #include <libutil.h>
 #endif /* HAVE_LIBUTIL_H */
 #endif /* HAVE_PTY_H */
-#if defined(sun) || defined(__hpux)
-#include <sys/stropts.h>
+#ifdef HAVE_STROPTS_H
+#include <stropts.h>
 #endif
 #endif /* defined(HAVE_OPENPTY) || defined(HAVE_FORKPTY) || defined(HAVE_DEV_PTMX */
 
diff --git a/configure b/configure
index 86d9578..f9121ec 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.in Revision: 1.381 .
+# From configure.in Revision: 1.382 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.53 for python 2.3.
 #
@@ -3977,9 +3977,11 @@
 
 
 
+
 for ac_header in dlfcn.h fcntl.h grp.h limits.h langinfo.h \
 libintl.h locale.h ncurses.h poll.h pthread.h \
-signal.h stdarg.h stddef.h stdlib.h thread.h unistd.h utime.h termios.h \
+signal.h stdarg.h stddef.h stdlib.h stropts.h termios.h thread.h \
+unistd.h utime.h \
 sys/audioio.h sys/file.h sys/lock.h sys/mkdev.h sys/modem.h \
 sys/param.h sys/poll.h sys/select.h sys/socket.h sys/time.h sys/times.h \
 sys/un.h sys/utsname.h sys/wait.h pty.h term.h libutil.h \
diff --git a/configure.in b/configure.in
index 48fa694..560942c 100644
--- a/configure.in
+++ b/configure.in
@@ -690,7 +690,8 @@
 AC_HEADER_STDC
 AC_CHECK_HEADERS(dlfcn.h fcntl.h grp.h limits.h langinfo.h \
 libintl.h locale.h ncurses.h poll.h pthread.h \
-signal.h stdarg.h stddef.h stdlib.h thread.h unistd.h utime.h termios.h \
+signal.h stdarg.h stddef.h stdlib.h stropts.h termios.h thread.h \
+unistd.h utime.h \
 sys/audioio.h sys/file.h sys/lock.h sys/mkdev.h sys/modem.h \
 sys/param.h sys/poll.h sys/select.h sys/socket.h sys/time.h sys/times.h \
 sys/un.h sys/utsname.h sys/wait.h pty.h term.h libutil.h \
diff --git a/pyconfig.h.in b/pyconfig.h.in
index 56a5c75..eba68f6 100644
--- a/pyconfig.h.in
+++ b/pyconfig.h.in
@@ -439,6 +439,9 @@
 /* Define to 1 if you have the <string.h> header file. */
 #undef HAVE_STRING_H
 
+/* Define to 1 if you have the <stropts.h> header file. */
+#undef HAVE_STROPTS_H
+
 /* Define to 1 if you have the `strptime' function. */
 #undef HAVE_STRPTIME
 
