diff --git a/docs/landscape.html b/docs/landscape.html
index a3a7aeb93a..0b039115d7 100644
--- a/docs/landscape.html
+++ b/docs/landscape.html
@@ -290,7 +290,7 @@ Town building
- m1 bits 6..0: position of the lift
- m1 bit 7: if set the lift is moving
-- m5 bit 7: if set then m5 bits 5..0 hold the final position of the lift divided by 6 (valid values 0..6 except 1)
+- m5 bit 7: if set then m5 bits 5..0 hold the destination floor of the lift, which could be 0..6, except 1, so the building has 6 effective floors. This due to the fact that the first floor is 2 'normal' floors high. One 'normal' floor has a height of 6 lift positions.
diff --git a/docs/landscape_grid.html b/docs/landscape_grid.html
index 998d7900d2..2a062b76f6 100644
--- a/docs/landscape_grid.html
+++ b/docs/landscape_grid.html
@@ -134,7 +134,7 @@ the array so you can quickly see what is used and what is not.
4 |
trees |
XXXX XXXX |
- OOOO OOOO OOXX XXXX |
+ OOOO OOOO XXXX XXXX |
XXXX XXXX |
XXXX XXOO |
XXXX XXXX |
diff --git a/town_cmd.c b/town_cmd.c
index fe983eea76..77ac02b9aa 100644
--- a/town_cmd.c
+++ b/town_cmd.c
@@ -174,6 +174,10 @@ static void AnimateTile_Town(TileIndex tile)
_m[tile].m1 |= 0x80;
+ /** Building has 6 floors, number 0 .. 6, where 1 is illegal.
+ * This is due to the fact that the first floor is, in the graphics,
+ * the height of 2 'normal' floors.
+ * Furthermore, there are 6 lift positions from floor N (incl) to floor N + 1 (excl) */
do {
i = (Random() & 7) - 1;
} while (i < 0 || i == 1 || i * 6 == old);