diff --git a/projects/openttd_vs80.vcproj b/projects/openttd_vs80.vcproj
index 03f7ee3d77..b80b046afa 100644
--- a/projects/openttd_vs80.vcproj
+++ b/projects/openttd_vs80.vcproj
@@ -1347,6 +1347,10 @@
RelativePath=".\..\src\station_gui.h"
>
+
+
@@ -1475,6 +1479,10 @@
RelativePath=".\..\src\waypoint.h"
>
+
+
diff --git a/projects/openttd_vs90.vcproj b/projects/openttd_vs90.vcproj
index 0413859e5c..b639ab3c2f 100644
--- a/projects/openttd_vs90.vcproj
+++ b/projects/openttd_vs90.vcproj
@@ -1344,6 +1344,10 @@
RelativePath=".\..\src\station_gui.h"
>
+
+
@@ -1472,6 +1476,10 @@
RelativePath=".\..\src\waypoint.h"
>
+
+
diff --git a/source.list b/source.list
index 554aec12f0..987ce13c2e 100644
--- a/source.list
+++ b/source.list
@@ -278,6 +278,7 @@ vehicle_type.h
viewport_func.h
viewport_type.h
waypoint.h
+waypoint_type.h
music/win32_m.h
sound/win32_s.h
video/win32_v.h
diff --git a/src/openttd.h b/src/openttd.h
index 8466bc9581..633f109392 100644
--- a/src/openttd.h
+++ b/src/openttd.h
@@ -9,13 +9,11 @@
#endif
// Forward declarations of structs.
-struct Waypoint;
typedef byte LandscapeID;
typedef uint16 EngineID;
typedef uint16 UnitID;
/* IDs used in Pools */
-typedef uint16 WaypointID;
typedef uint16 EngineRenewID;
enum GameModes {
diff --git a/src/rail_map.h b/src/rail_map.h
index a87c400f4b..008fb39ef9 100644
--- a/src/rail_map.h
+++ b/src/rail_map.h
@@ -11,6 +11,7 @@
#include "track_func.h"
#include "tile_map.h"
#include "signal_type.h"
+#include "waypoint_type.h"
/** Different types of Rail-related tiles */
diff --git a/src/waypoint.h b/src/waypoint.h
index 97e1c1ff7f..3c4400d420 100644
--- a/src/waypoint.h
+++ b/src/waypoint.h
@@ -5,12 +5,12 @@
#ifndef WAYPOINT_H
#define WAYPOINT_H
+#include "waypoint_type.h"
#include "oldpool.h"
#include "rail_map.h"
#include "command_type.h"
#include "station_type.h"
-struct Waypoint;
DECLARE_OLD_POOL(Waypoint, Waypoint, 3, 8000)
struct Waypoint : PoolItem {
diff --git a/src/waypoint_type.h b/src/waypoint_type.h
new file mode 100644
index 0000000000..c74e8cf925
--- /dev/null
+++ b/src/waypoint_type.h
@@ -0,0 +1,11 @@
+/* $Id$ */
+
+/** @file waypoint_type.h Types related to waypoints. */
+
+#ifndef WAYPOINT_TYPE_H
+#define WAYPOINT_TYPE_H
+
+typedef uint16 WaypointID;
+struct Waypoint;
+
+#endif /* WAYPOINT_TYPE_H */