diff --git a/Source/CPack/WiX/cmCPackWIXGenerator.cxx b/Source/CPack/WiX/cmCPackWIXGenerator.cxx
index d5246db43d2cd34271fe963dd69939cbb0b4cf01..da8b486c21a58658c093426de7c56321bf0c3817 100644
--- a/Source/CPack/WiX/cmCPackWIXGenerator.cxx
+++ b/Source/CPack/WiX/cmCPackWIXGenerator.cxx
@@ -911,8 +911,9 @@ void cmCPackWIXGenerator::AddDirectoryAndFileDefinitons(
     relativeDirectoryPath = ".";
     }
 
-  cmInstalledFile const* directoryInstalledFile =
-    this->GetInstalledFile(relativeDirectoryPath);
+  cmInstalledFile const* directoryInstalledFile = this->GetInstalledFile(
+      this->RelativePathWithoutComponentPrefix(relativeDirectoryPath)
+  );
 
   bool emptyDirectory = dir.GetNumberOfFiles() == 2;
   bool createDirectory = false;
@@ -980,8 +981,9 @@ void cmCPackWIXGenerator::AddDirectoryAndFileDefinitons(
       }
     else
       {
-      cmInstalledFile const* installedFile =
-        this->GetInstalledFile(relativePath);
+      cmInstalledFile const* installedFile = this->GetInstalledFile(
+        this->RelativePathWithoutComponentPrefix(relativePath)
+      );
 
       if(installedFile)
         {
@@ -1230,3 +1232,16 @@ void cmCPackWIXGenerator::AddCustomFlags(
       stream << " " << QuotePath(*i);
     }
 }
+
+std::string cmCPackWIXGenerator::RelativePathWithoutComponentPrefix(
+  std::string const& path)
+{
+  if(this->Components.empty())
+    {
+    return path;
+    }
+
+  std::string::size_type pos = path.find('/');
+
+  return path.substr(pos + 1);
+}
diff --git a/Source/CPack/WiX/cmCPackWIXGenerator.h b/Source/CPack/WiX/cmCPackWIXGenerator.h
index d501609537e8dc9e0a596912433022137c5fcadb..3f66b2c023550d4432a09d117b55c1a2fd897068 100644
--- a/Source/CPack/WiX/cmCPackWIXGenerator.h
+++ b/Source/CPack/WiX/cmCPackWIXGenerator.h
@@ -168,6 +168,9 @@ private:
   void AddCustomFlags(
     std::string const& variableName, std::ostream& stream);
 
+  std::string RelativePathWithoutComponentPrefix(
+    std::string const& path);
+
   std::vector<std::string> WixSources;
   id_map_t PathToIdMap;
   ambiguity_map_t IdAmbiguityCounter;