To find the curses extension as a DLL (on OS/2), we need to adjust the
library search path to include the extension directory.  Without this,
the curses_panel extension can't find the curses extension/DLL, which
exports some curses symbols to it.
diff --git a/Lib/site.py b/Lib/site.py
index e7b9369..7282190 100644
--- a/Lib/site.py
+++ b/Lib/site.py
@@ -194,6 +194,21 @@
 _dirs_in_sys_path = None
 
 
+# the OS/2 EMX port has optional extension modules that do double duty
+# as DLLs (and must use the .DLL file extension) for other extensions.
+# The library search path needs to be amended so these will be found
+# during module import.  Use BEGINLIBPATH so that these are at the start
+# of the library search path.
+if sys.platform == 'os2emx':
+    dllpath = os.path.join(sys.prefix, "Lib", "lib-dynload")
+    libpath = os.environ['BEGINLIBPATH'].split(';')
+    if libpath[-1]:
+        libpath.append(dllpath)
+    else:
+        libpath[-1] = dllpath
+    os.environ['BEGINLIBPATH'] = ';'.join(libpath)
+
+
 # Define new built-ins 'quit' and 'exit'.
 # These are simply strings that display a hint on how to exit.
 if os.sep == ':':