diff --git a/data/mapcss-mapping.csv b/data/mapcss-mapping.csv
index 1adf25076..1a2d450c3 100644
--- a/data/mapcss-mapping.csv
+++ b/data/mapcss-mapping.csv
@@ -416,7 +416,7 @@ mountain_pass;[mountain_pass];;name;int_name;307;
highway|raceway;308;
highway|primary|tunnel;[highway=primary][tunnel?];;name;int_name;309;
highway|primary_link|bridge;[highway=primary_link][bridge?];;name;int_name;310;
-man_made|tower|communication;[man_made=tower][tower:type=communication],[man_made=mast][tower:type=communication];;name;int_name;311;
+man_made|tower|communication;[man_made=tower][tower:type=communication];;name;int_name;311;
sport|equestrian;312;
tourism|information|office;[tourism=information][information=office];;name;int_name;313;
deprecated:highway|footway|hiking:04.2024;[highway=footway][sac_scale=hiking];x;name;int_name;314;highway|path
@@ -445,7 +445,7 @@ sport|cricket;334;
sport|bowls;335;
highway|path|tunnel;[highway=path][tunnel?],[highway=path][location=underground];;name;int_name;336;
man_made|breakwater;337;
-deprecated:amenity|parking|permissive|fee:01.2020;[amenity=parking][access=permissive][fee?];x;name;int_name;338;amenity|parking|permissive
+man_made|mast|communication;[man_made=mast][tower:type=communication];;name;int_name;338;
# -utility includes all usage=industrial/military/test/science/freight (see replaced_tags.txt) incl. w/ service=spur, but not w/ other service= values.
# TODO: add [key=value1|value2|etc] (and [key!=value1|value2|etc]) support to avoid referring to replaced_tags.txt.
railway|rail|utility;[railway=rail][usage=utility][!service],[railway=rail][usage=utility][service=spur];;name;int_name;339;
diff --git a/data/styles/default/dark/symbols/communications_mast-m.svg b/data/styles/default/dark/symbols/communications_mast-m.svg
new file mode 100644
index 000000000..c3c3a7001
--- /dev/null
+++ b/data/styles/default/dark/symbols/communications_mast-m.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/data/styles/default/dark/symbols/communications_tower_major-m.svg b/data/styles/default/dark/symbols/communications_tower_major-m.svg
new file mode 100644
index 000000000..21e5f6789
--- /dev/null
+++ b/data/styles/default/dark/symbols/communications_tower_major-m.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/data/styles/default/dark/symbols/communications_tower_major-s.svg b/data/styles/default/dark/symbols/communications_tower_major-s.svg
new file mode 100644
index 000000000..ac551d550
--- /dev/null
+++ b/data/styles/default/dark/symbols/communications_tower_major-s.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/data/styles/default/dark/symbols/communications_tower_minor-m.svg b/data/styles/default/dark/symbols/communications_tower_minor-m.svg
new file mode 100644
index 000000000..989f55252
--- /dev/null
+++ b/data/styles/default/dark/symbols/communications_tower_minor-m.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/data/styles/default/include/Icons.mapcss b/data/styles/default/include/Icons.mapcss
index c80cbe4eb..28ddfcdb2 100644
--- a/data/styles/default/include/Icons.mapcss
+++ b/data/styles/default/include/Icons.mapcss
@@ -1212,9 +1212,10 @@ node|z16-[barrier=cycle_barrier],
node|z16-[highway=ford],
{icon-image: ford-m.svg;}
-/* TODO: needs a better icon */
-node|z14-[man_made=communications_tower],
-{icon-image: mast-m.svg;}
+node|z14[man_made=communications_tower],
+{icon-image: communications_tower_major-s.svg;}
+node|z15-[man_made=communications_tower],
+{icon-image: communications_tower_major-m.svg;}
node|z17-[man_made=communications_tower],
{font-size: 11;}
@@ -1226,10 +1227,12 @@ node|z16-[man_made=mast],
/* TODO: needs a better icon */
node|z16-[man_made=tower],
-node|z16-[man_made=tower][tower:type=communication],
node|z16-[man_made=flare],
{icon-image: mast-m.svg;}
+node|z16-[man_made=tower][tower:type=communication],
+{icon-image: communications_tower_minor-m.svg;}
+
/* TODO: needs a better icon */
node|z17-[man_made=petroleum_well],
{icon-image: mast-m.svg;}
diff --git a/data/styles/default/include/priorities_4_overlays.prio.txt b/data/styles/default/include/priorities_4_overlays.prio.txt
index dd41f4f4f..ff06656ec 100644
--- a/data/styles/default/include/priorities_4_overlays.prio.txt
+++ b/data/styles/default/include/priorities_4_overlays.prio.txt
@@ -1113,6 +1113,7 @@ man_made-chimney # icon z16- (also has captio
man_made-crane # icon z16- (also has caption(optional) z18-)
man_made-flagpole # icon z15-
man_made-flare # icon z16- (also has caption(optional) z18-)
+man_made-mast-communication # icon z16-
man_made-tower # icon z16- (also has caption(optional) z18-)
man_made-tower-communication # icon z16- (also has caption(optional) z18-)
=== 850
diff --git a/data/styles/default/light/symbols/communications_mast-m.svg b/data/styles/default/light/symbols/communications_mast-m.svg
new file mode 100644
index 000000000..2a3dca070
--- /dev/null
+++ b/data/styles/default/light/symbols/communications_mast-m.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/data/styles/default/light/symbols/communications_tower_major-m.svg b/data/styles/default/light/symbols/communications_tower_major-m.svg
new file mode 100644
index 000000000..69959d96f
--- /dev/null
+++ b/data/styles/default/light/symbols/communications_tower_major-m.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/data/styles/default/light/symbols/communications_tower_major-s.svg b/data/styles/default/light/symbols/communications_tower_major-s.svg
new file mode 100644
index 000000000..4b42a459d
--- /dev/null
+++ b/data/styles/default/light/symbols/communications_tower_major-s.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/data/styles/default/light/symbols/communications_tower_minor-m.svg b/data/styles/default/light/symbols/communications_tower_minor-m.svg
new file mode 100644
index 000000000..1343583ce
--- /dev/null
+++ b/data/styles/default/light/symbols/communications_tower_minor-m.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/data/styles/outdoors/include/Icons.mapcss b/data/styles/outdoors/include/Icons.mapcss
index 8e5b05e8e..c94d1ccb7 100644
--- a/data/styles/outdoors/include/Icons.mapcss
+++ b/data/styles/outdoors/include/Icons.mapcss
@@ -319,13 +319,13 @@ node|z14-[man_made=flagpole],
node|z14-[man_made=mast],
{icon-image: mast-m.svg;}
-/* TODO: needs a better icon */
-node|z12-[man_made=communications_tower],
-{icon-image: mast-m.svg;}
+node|z14-[man_made=mast][tower:type=communication],
+{icon-image: communications_mast-m.svg;}
+
+node|z12[man_made=communications_tower],
+{icon-image: communications_tower_major-s.svg;}
node|z13-[man_made=communications_tower],
-{font-size: 11;}
-node|z14-[man_made=communications_tower],
-{icon-image: power-tower-m.svg;}
+{icon-image: communications_tower_major-m.svg; font-size: 11;}
node|z16-[man_made=communications_tower],
{font-size: 12;}
@@ -333,6 +333,9 @@ node|z13-[man_made=tower],
node|z13-[man_made=flare],
{icon-image: mast-m.svg; font-size: 11;}
+node|z13-[man_made=tower][tower:type=communication],
+{icon-image: communications_tower_minor-m.svg; }
+
node|z14-[man_made=tower][tower:type!=communication],
{icon-image: storage-tank.svg;}
node|z16-[man_made=tower],
diff --git a/data/styles/outdoors/include/priorities_4_overlays.prio.txt b/data/styles/outdoors/include/priorities_4_overlays.prio.txt
index 501b6c1ef..6d9612a80 100644
--- a/data/styles/outdoors/include/priorities_4_overlays.prio.txt
+++ b/data/styles/outdoors/include/priorities_4_overlays.prio.txt
@@ -1114,6 +1114,7 @@ man_made-chimney # icon z16- (also has captio
man_made-crane # icon z16- (also has caption(optional) z18-)
man_made-flagpole # icon z12- (also has caption(optional) z14-)
man_made-flare # icon z13- (also has caption(optional) z18-)
+man_made-mast-communication # icon z13- (also has caption(optional) z14-)
man_made-tower # icon z13- (also has caption(optional) z14-)
man_made-tower-communication # icon z13- (also has caption(optional) z14-)
=== 850
@@ -2068,6 +2069,7 @@ leisure-swimming_pool-private # icon z17- (also has captio
# man_made-crane # caption(optional) z18- (also has icon z16-)
# man_made-flagpole # caption(optional) z14- (also has icon z12-)
# man_made-flare # caption(optional) z18- (also has icon z13-)
+# man_made-mast-communication # caption(optional) z14- (also has icon z13-)
# man_made-tower # caption(optional) z14- (also has icon z13-)
# man_made-tower-communication # caption(optional) z14- (also has icon z13-)
# === -9150