#2890: support os.O_ASYNC and fcntl.FASYNC.
diff --git a/Misc/NEWS b/Misc/NEWS
index 116e4b9..fa6f5e9 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -30,6 +30,8 @@
 Extension Modules
 -----------------
 
+- Support os.O_ASYNC and fcntl.FASYNC if the constants exist on the platform.
+
 - Support for Windows 9x has been removed from the winsound module.
 
 - bsddb module updated to version 4.6.4.
diff --git a/Modules/fcntlmodule.c b/Modules/fcntlmodule.c
index 96a6cc8..0c85f47 100644
--- a/Modules/fcntlmodule.c
+++ b/Modules/fcntlmodule.c
@@ -510,6 +510,9 @@
         if (ins(d, "F_SETLKW64", (long)F_SETLKW64)) return -1;
 #endif
 /* GNU extensions, as of glibc 2.2.4. */
+#ifdef FASYNC
+        if (ins(d, "FASYNC", (long)FASYNC)) return -1;
+#endif
 #ifdef F_SETLEASE
         if (ins(d, "F_SETLEASE", (long)F_SETLEASE)) return -1;
 #endif
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 6a72166..a4bbac5 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -8756,6 +8756,11 @@
 #endif
 
 /* GNU extensions. */
+#ifdef O_ASYNC
+        /* Send a SIGIO signal whenever input or output 
+           becomes available on file descriptor */
+        if (ins(d, "O_ASYNC", (long)O_ASYNC)) return -1;
+#endif
 #ifdef O_DIRECT
         /* Direct disk access. */
         if (ins(d, "O_DIRECT", (long)O_DIRECT)) return -1;