diff --git a/src/p_user.c b/src/p_user.c
index e2101d6afb60e56267d6afc95ae2d124fdb02344..e666386f2f2c0341cb85bf4400c7664db8370b53 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -1097,7 +1097,7 @@ boolean P_PlayerCanDamage(player_t *player, mobj_t *thing)
 	if (player->pflags & PF_SPINNING)
 		return true;
 	
-	if (player->dashmode >= DASHMODE_THRESHOLD && player->charflags & (SF_DASHMODE|SF_MACHINE) == (SF_DASHMODE|SF_MACHINE))
+	if (player->dashmode >= DASHMODE_THRESHOLD && (player->charflags & (SF_DASHMODE|SF_MACHINE)) == (SF_DASHMODE|SF_MACHINE))
 		return true;
 
 	// From the front.
@@ -2477,7 +2477,7 @@ static void P_CheckBustableBlocks(player_t *player)
 						&& !(player->powers[pw_super])
 						&& !(player->charability == CA_GLIDEANDCLIMB)
 						&& !(player->pflags & PF_BOUNCING)
-						&& !((player->charflags & (SF_DASHMODE|SF_MACHINE) == (SF_DASHMODE|SF_MACHINE)) && (player->dashmode >= DASHMODE_THRESHOLD))
+						&& !(((player->charflags & (SF_DASHMODE|SF_MACHINE)) == (SF_DASHMODE|SF_MACHINE)) && (player->dashmode >= DASHMODE_THRESHOLD))
 						&& !((player->charability == CA_TWINSPIN) && (player->panim == PA_ABILITY))
 						&& !(player->charability2 == CA2_MELEE && player->panim == PA_ABILITY2)
 						&& !(player->pflags & PF_DRILLING)
diff --git a/src/r_things.c b/src/r_things.c
index 5fa97844a263c1002d7858d70cb79530c0df04ef..00eaae1c206423618885834fa7e268a01da0d42e 100644
--- a/src/r_things.c
+++ b/src/r_things.c
@@ -755,7 +755,7 @@ static void R_DrawVisSprite(vissprite_t *vis)
 			dc_translation = R_GetTranslationColormap(TC_RAINBOW, vis->mobj->color, GTC_CACHE);
 		else if (!(vis->cut & SC_PRECIP)
 			&& vis->mobj->player && vis->mobj->player->dashmode >= DASHMODE_THRESHOLD
-			&& vis->mobj->player->charflags & (SF_DASHMODE|SF_MACHINE) == (SF_DASHMODE|SF_MACHINE)
+			&& (vis->mobj->player->charflags & (SF_DASHMODE|SF_MACHINE)) == (SF_DASHMODE|SF_MACHINE)
 			&& ((leveltime/2) & 1))
 		{
 			dc_translation = R_GetTranslationColormap(TC_DASHMODE, 0, GTC_CACHE);
@@ -783,7 +783,7 @@ static void R_DrawVisSprite(vissprite_t *vis)
 			dc_translation = R_GetTranslationColormap(TC_RAINBOW, vis->mobj->color, GTC_CACHE);
 		else if (!(vis->cut & SC_PRECIP)
 			&& vis->mobj->player && vis->mobj->player->dashmode >= DASHMODE_THRESHOLD
-			&& vis->mobj->player->charflags & (SF_DASHMODE|SF_MACHINE) == (SF_DASHMODE|SF_MACHINE)
+			&& (vis->mobj->player->charflags & (SF_DASHMODE|SF_MACHINE)) == (SF_DASHMODE|SF_MACHINE)
 			&& ((leveltime/2) & 1))
 		{
 			dc_translation = R_GetTranslationColormap(TC_DASHMODE, 0, GTC_CACHE);