diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py
index e6ed984..163b018 100644
--- a/Lib/distutils/command/install.py
+++ b/Lib/distutils/command/install.py
@@ -437,14 +437,6 @@
         if self.path_file:
             self.create_path_file ()
 
-        normalized_path = map (os.path.normpath, sys.path)
-        if (not (self.path_file and self.install_path_file) and
-            os.path.normpath (self.install_lib) not in normalized_path):
-            self.warn (("modules installed to '%s', which is not in " +
-                        "Python's module search path (sys.path) -- " +
-                        "you'll have to change the search path yourself") %
-                       self.install_lib)
-
         # write list of installed files, if requested.
         if self.record:
             outputs = self.get_outputs()
@@ -459,7 +451,15 @@
                     outputs[counter] = outputs[counter][root_len:]
             self.execute(write_file,
                          ("INSTALLED_FILES", outputs),
-                         "Writing list of installed files")
+                         "writing list of installed files")
+
+        normalized_path = map (os.path.normpath, sys.path)
+        if (not (self.path_file and self.install_path_file) and
+            os.path.normpath (self.install_lib) not in normalized_path):
+            self.warn (("modules installed to '%s', which is not in " +
+                        "Python's module search path (sys.path) -- " +
+                        "you'll have to change the search path yourself") %
+                       self.install_lib)
 
     # run ()
 
