diff --git a/projects/openttd_vs100.vcxproj b/projects/openttd_vs100.vcxproj
index 41aeeabacc..5dc33f4905 100644
--- a/projects/openttd_vs100.vcxproj
+++ b/projects/openttd_vs100.vcxproj
@@ -650,6 +650,7 @@
+
diff --git a/projects/openttd_vs100.vcxproj.filters b/projects/openttd_vs100.vcxproj.filters
index f2900c846f..70e447850f 100644
--- a/projects/openttd_vs100.vcxproj.filters
+++ b/projects/openttd_vs100.vcxproj.filters
@@ -1179,6 +1179,9 @@
Core Source Code
+
+ Core Source Code
+
Core Source Code
diff --git a/projects/openttd_vs80.vcproj b/projects/openttd_vs80.vcproj
index 5c866b99dd..3d72082b15 100644
--- a/projects/openttd_vs80.vcproj
+++ b/projects/openttd_vs80.vcproj
@@ -1878,6 +1878,10 @@
RelativePath=".\..\src\core\mem_func.hpp"
>
+
+
diff --git a/projects/openttd_vs90.vcproj b/projects/openttd_vs90.vcproj
index 96120ed473..29ec12e2bd 100644
--- a/projects/openttd_vs90.vcproj
+++ b/projects/openttd_vs90.vcproj
@@ -1875,6 +1875,10 @@
RelativePath=".\..\src\core\mem_func.hpp"
>
+
+
diff --git a/source.list b/source.list
index be324f335f..2edab9e7bb 100644
--- a/source.list
+++ b/source.list
@@ -400,6 +400,7 @@ core/geometry_type.hpp
core/math_func.cpp
core/math_func.hpp
core/mem_func.hpp
+core/multimap.hpp
core/overflowsafe_type.hpp
core/pool_func.cpp
core/pool_func.hpp
diff --git a/src/core/multimap.hpp b/src/core/multimap.hpp
new file mode 100644
index 0000000000..e906677141
--- /dev/null
+++ b/src/core/multimap.hpp
@@ -0,0 +1,388 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see .
+ */
+
+/** @file multimap.hpp Multimap with deterministic ordering of items with equal keys. */
+
+#ifndef MULTIMAP_HPP
+#define MULTIMAP_HPP
+
+#include