diff --git a/Lib/distutils/emxccompiler.py b/Lib/distutils/emxccompiler.py
index 91920eb..9cd9600 100644
--- a/Lib/distutils/emxccompiler.py
+++ b/Lib/distutils/emxccompiler.py
@@ -177,7 +177,8 @@
 
     # -- Miscellaneous methods -----------------------------------------
 
-    # overwrite the one from CCompiler to support rc and res-files
+    # override the object_filenames method from CCompiler to
+    # support rc and res-files
     def object_filenames (self,
                           source_filenames,
                           strip_dir=0,
@@ -204,6 +205,29 @@
 
     # object_filenames ()
 
+    # override the find_library_file method from UnixCCompiler
+    # to deal with file naming/searching differences
+    def find_library_file(self, dirs, lib, debug=0):
+        shortlib = '%s.lib' % lib
+        longlib = 'lib%s.lib' % lib    # this form very rare
+
+        # get EMX's default library directory search path
+        try:
+            emx_dirs = os.environ['LIBRARY_PATH'].split(';')
+        except KeyError:
+            emx_dirs = []
+	
+        for dir in dirs + emx_dirs:
+            shortlibp = os.path.join(dir, shortlib)
+            longlibp = os.path.join(dir, longlib)
+            if os.path.exists(shortlibp):
+                return shortlibp
+            elif os.path.exists(longlibp):
+                return longlibp
+            
+        # Oops, didn't find it in *any* of 'dirs'
+        return None
+
 # class EMXCCompiler
 
 
