diff --git a/strings.c b/strings.c
index e28ec25dd5..b68cd99dc2 100644
--- a/strings.c
+++ b/strings.c
@@ -500,8 +500,8 @@ static char *FormatString(char *buff, const char *str, const int32 *argv, uint c
 			break;
 
 		case 0x81: // {STRINL}
+			buff = GetStringWithArgs(buff, READ_LE_UINT16(str), argv);
 			str += 2;
-			buff = GetStringWithArgs(buff, READ_LE_UINT16(str-2), argv);
 			break;
 		case 0x82: // {DATE_LONG}
 			buff = FormatYmdString(buff, GetInt32(&argv));
diff --git a/tree_cmd.c b/tree_cmd.c
index ca84a57e80..8fbf4a670c 100644
--- a/tree_cmd.c
+++ b/tree_cmd.c
@@ -581,9 +581,9 @@ void OnTick_Trees(void)
 		int m2;
 
 		switch (ct) {
-			case CL_GRASS: m2 = 0;
-			case CL_ROUGH: m2 = 0x10;
-			default:       m2 = (GetClearDensity(tile) << 6) | 0x20;
+			case CL_GRASS: m2 = 0; break;
+			case CL_ROUGH: m2 = 0x10; break;
+			default:       m2 = (GetClearDensity(tile) << 6) | 0x20; break;
 		}
 
 		ModifyTile(tile,