diff --git a/data/mapcss-mapping.csv b/data/mapcss-mapping.csv
index 2f6570aa2a..bb390e21df 100644
--- a/data/mapcss-mapping.csv
+++ b/data/mapcss-mapping.csv
@@ -1124,7 +1124,7 @@ public_transport|platform;1008;
junction;[junction];;name;int_name;1009;
aeroway|aerodrome|international;[aeroway=aerodrome][aerodrome=international],[aeroway=aerodrome][aerodrome:type=international];;name;int_name;1010;
railway|station|light_rail;[railway=station][station=light_rail],[railway=station][transport=light_rail];;name;int_name;1011;
-railway|station|monorail;[railway=station][station=monorail],[railway=station][transport=monorail];;name;int_name;1012;
+railway|station|monorail;[railway=station][station=monorail],[railway=station][transport=monorail],[railway=halt][station=monorail];;name;int_name;1012;
railway|station|subway|london;[railway=station][transport=subway][city=london],[railway=station][station=subway][city=london];;name;int_name;1013;
railway|station|subway|newyork;[railway=station][transport=subway][city=newyork],[railway=station][station=subway][city=newyork];;name;int_name;1014;
railway|station|subway|moscow;[railway=station][transport=subway][city=moscow],[railway=station][station=subway][city=moscow];;name;int_name;1015;
diff --git a/data/strings/types_strings.txt b/data/strings/types_strings.txt
index 39ffb88cb0..12d8affc88 100644
--- a/data/strings/types_strings.txt
+++ b/data/strings/types_strings.txt
@@ -23332,6 +23332,7 @@
ref = type.railway.station
en = Monorail Station
af = Lugspoorstasie
+ de = Einschienenbahn-Station
zh-Hans = 单轨车站
zh-Hant = 單軌車站
diff --git a/data/styles/default/dark/symbols/monorail-m.svg b/data/styles/default/dark/symbols/monorail-m.svg
new file mode 100644
index 0000000000..c2dc5582ff
--- /dev/null
+++ b/data/styles/default/dark/symbols/monorail-m.svg
@@ -0,0 +1,15 @@
+
+
diff --git a/data/styles/default/dark/symbols/monorail-s.svg b/data/styles/default/dark/symbols/monorail-s.svg
new file mode 100644
index 0000000000..160352f9b6
--- /dev/null
+++ b/data/styles/default/dark/symbols/monorail-s.svg
@@ -0,0 +1,15 @@
+
+
diff --git a/data/styles/default/include/Subways.mapcss b/data/styles/default/include/Subways.mapcss
index e0a82f8b3e..25a7ddc3be 100644
--- a/data/styles/default/include/Subways.mapcss
+++ b/data/styles/default/include/Subways.mapcss
@@ -12,10 +12,12 @@ the bbox to MatchCity() in generator/osm2type.cpp
/* reset style for generic station because railway-station inherited from icons.mapcss */
node|z0-[railway=station][transport=subway],
node|z0-[railway=station][station=light_rail],
+node|z0-[railway=station][station=monorail],
{icon-image: none; text: none;}
node|z0-[railway=station][transport=subway]::int_name,
node|z0-[railway=station][station=light_rail]::int_name,
+node|z0-[railway=station][station=monorail]::int_name,
{icon-image: none; text: none;}
/*TODO: for some reason, int_name rules and normal rules have to be
separate, otherwise generating drules fails with a priority error */
@@ -28,32 +30,44 @@ node|z13-[railway=station][station=light_rail],
{icon-image: train-s.svg;}
node|z15-[railway=station][station=light_rail],
{icon-image: train-m.svg;}
+node|z13-[railway=station][station=monorail],
+{icon-image: monorail-s.svg;}
+node|z15-[railway=station][station=monorail],
+{icon-image: monorail-m.svg;}
node|z14-[railway=station][transport=subway],
node|z14-[railway=station][station=light_rail],
+node|z14-[railway=station][station=monorail],
{text: name;text-offset: 1;font-size: 11;text-color: @label_dark;text-halo-radius: 1;text-halo-color: @label_halo_light;text-halo-opacity: 0.8;}
node|z14-[railway=station][transport=subway]::int_name,
node|z14-[railway=station][station=light_rail]::int_name,
+node|z14-[railway=station][station=monorail]::int_name,
{text: int_name;text-offset: 1;font-size: 9;text-color: @label_dark;text-halo-radius: 1;text-halo-color: @label_halo_light;text-halo-opacity: 0.8;}
node|z15-[railway=station][transport=subway],
node|z15-[railway=station][station=light_rail],
+node|z15-[railway=station][station=monorail],
{font-size: 12;}
node|z16-[railway=station][transport=subway],
node|z16-[railway=station][station=light_rail],
+node|z16-[railway=station][station=monorail],
{font-size: 13;}
node|z17-[railway=station][transport=subway],
node|z17-[railway=station][station=light_rail],
+node|z17-[railway=station][station=monorail],
{text-halo-opacity: 0.9;}
node|z15-[railway=station][transport=subway]::int_name,
node|z15-[railway=station][station=light_rail]::int_name,
+node|z15-[railway=station][station=monorail]::int_name,
{font-size: 10;}
node|z16-[railway=station][transport=subway]::int_name,
node|z16-[railway=station][station=light_rail]::int_name
+node|z16-[railway=station][station=monorail]::int_name
{font-size: 11}
node|z17-[railway=station][transport=subway]::int_name,
node|z17-[railway=station][station=light_rail]::int_name,
+node|z17-[railway=station][station=monorail]::int_name,
{text-halo-opacity: 0.9;}
node|z16-[railway=subway_entrance],
diff --git a/data/styles/default/light/symbols/monorail-m.svg b/data/styles/default/light/symbols/monorail-m.svg
new file mode 100644
index 0000000000..06c56004b6
--- /dev/null
+++ b/data/styles/default/light/symbols/monorail-m.svg
@@ -0,0 +1,15 @@
+
+
diff --git a/data/styles/default/light/symbols/monorail-s.svg b/data/styles/default/light/symbols/monorail-s.svg
new file mode 100644
index 0000000000..1fc7b44baf
--- /dev/null
+++ b/data/styles/default/light/symbols/monorail-s.svg
@@ -0,0 +1,15 @@
+
+