diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 2accf47..67b9fa5 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -537,15 +537,10 @@ void cmLocalGenerator::GenerateInstallRules()
       "  set(CMAKE_INSTALL_MANIFEST \"install_manifest.txt\")\n"
       "endif()\n\n";
     fout
+      << "string(REPLACE \";\" \"\\n\" CMAKE_INSTALL_MANIFEST_CONTENT \"${CMAKE_INSTALL_MANIFEST_FILES}\")" << std::endl
       << "file(WRITE \""
       << homedir << "/${CMAKE_INSTALL_MANIFEST}\" "
-      << "\"\")" << std::endl;
-    fout
-      << "foreach(file ${CMAKE_INSTALL_MANIFEST_FILES})" << std::endl
-      << "  file(APPEND \""
-      << homedir << "/${CMAKE_INSTALL_MANIFEST}\" "
-      << "\"${file}\\n\")" << std::endl
-      << "endforeach()" << std::endl;
+      << "\"${CMAKE_INSTALL_MANIFEST_CONTENT}\")" << std::endl;
     }
 }
 
