diff --git a/Lib/distutils/ccompiler.py b/Lib/distutils/ccompiler.py
index 46dabad..4a8c1d3 100644
--- a/Lib/distutils/ccompiler.py
+++ b/Lib/distutils/ccompiler.py
@@ -770,7 +770,7 @@
 # gen_preprocess_options ()
 
 
-def gen_lib_options (compiler, library_dirs, libraries):
+def gen_lib_options (compiler, library_dirs, runtime_library_dirs, libraries):
     """Generate linker options for searching library directories and
        linking with specific libraries.  'libraries' and 'library_dirs'
        are, respectively, lists of library names (not filenames!) and
@@ -783,6 +783,9 @@
     for dir in library_dirs:
         lib_opts.append (compiler.library_dir_option (dir))
 
+    for dir in runtime_library_dirs:
+        lib_opts.append (compiler.runtime_library_dir_option (dir))
+
     # XXX it's important that we *not* remove redundant library mentions!
     # sometimes you really do have to say "-lfoo -lbar -lfoo" in order to
     # resolve all symbols.  I just hope we never have to say "-lfoo obj.o
diff --git a/Lib/distutils/msvccompiler.py b/Lib/distutils/msvccompiler.py
index bf5257f..7324b8e 100644
--- a/Lib/distutils/msvccompiler.py
+++ b/Lib/distutils/msvccompiler.py
@@ -307,7 +307,9 @@
             self._fix_link_args (objects, output_dir, takes_libs=1,
                                  libraries=libraries, library_dirs=library_dirs)
         
-        lib_opts = gen_lib_options (self, library_dirs, libraries)
+        lib_opts = gen_lib_options (self,
+                                    library_dirs, self.runtime_library_dirs,
+                                    libraries)
         if type (output_dir) not in (StringType, NoneType):
             raise TypeError, "'output_dir' must be a string or None"
         if output_dir is not None:
@@ -348,6 +350,10 @@
     def library_dir_option (self, dir):
         return "/LIBPATH:" + dir
 
+    def runtime_library_dir_option (self, dir):
+        raise DistutilsPlatformError, \
+              "don't know how to set runtime library search path for MSVC++"
+
     def library_option (self, lib):
         return self.library_filename (lib)
 
diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py
index 0d2858d..ec85571 100644
--- a/Lib/distutils/unixccompiler.py
+++ b/Lib/distutils/unixccompiler.py
@@ -197,7 +197,9 @@
             self._fix_link_args (objects, output_dir, takes_libs=1,
                                  libraries=libraries, library_dirs=library_dirs)
 
-        lib_opts = gen_lib_options (self, library_dirs, libraries)
+        lib_opts = gen_lib_options (self,
+                                    library_dirs, self.runtime_library_dirs,
+                                    libraries)
         if type (output_dir) not in (StringType, NoneType):
             raise TypeError, "'output_dir' must be a string or None"
         if output_dir is not None:
@@ -234,7 +236,9 @@
             self._fix_link_args (objects, output_dir, takes_libs=1,
                                  libraries=libraries, library_dirs=library_dirs)
 
-        lib_opts = gen_lib_options (self, library_dirs, libraries)
+        lib_opts = gen_lib_options (self,
+                                    library_dirs, self.runtime_library_dirs,
+                                    libraries)
         output_filename = output_progname # Unix-ism!
         if output_dir is not None:
             output_filename = os.path.join (output_dir, output_filename)
@@ -262,6 +266,9 @@
     def library_dir_option (self, dir):
         return "-L" + dir
 
+    def runtime_library_dir_option (self, dir):
+        return "-R" + dir
+
     def library_option (self, lib):
         return "-l" + lib
 
