diff --git a/src/d_player.h b/src/d_player.h
index ae269cb53..581f59766 100644
--- a/src/d_player.h
+++ b/src/d_player.h
@@ -156,7 +156,6 @@ typedef enum
 	PF_FORCESTRAFE = 1<<28, // Turning inputs are translated into strafing inputs
 	PF_CANCARRY    = 1<<29, // Can carry another player?
 	PF_FINISHED    = 1<<30, // The player finished the level. NOT the same as exiting
-	PF_CANBUSTFLOORS	= 1<<31, // The player can bust floors on contact.
 
 	// up to 1<<31 is free
 } pflags_t;
diff --git a/src/dehacked.c b/src/dehacked.c
index 5e422f974..37a4d03cb 100644
--- a/src/dehacked.c
+++ b/src/dehacked.c
@@ -9089,7 +9089,6 @@ static const char *const PLAYERFLAG_LIST[] = {
 	"FORCESTRAFE", // Translate turn inputs into strafe inputs
 	"CANCARRY", // Can carry?
 	"FINISHED",
-	"CANBUSTFLOORS", // Can bust floors?
 
 	NULL // stop loop here.
 };
diff --git a/src/p_user.c b/src/p_user.c
index c3ff223e6..be1f990e0 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -2612,47 +2612,6 @@ static void P_CheckBustableBlocks(player_t *player)
 	if ((netgame || multiplayer) && player->spectator)
 		return;
 	
-	// First iteration, check for floors we're touching directly (PF_CANBUSTFLOORS)
-	if (player->pflags & PF_CANBUSTFLOORS)
-	{
-		for (node = player->mo->touching_sectorlist; node; node = node->m_sectorlist_next)
-		{
-			ffloor_t *rover;
-			fixed_t topheight, bottomheight;
-
-			if (!node->m_sector)
-				break;
-
-			if (!node->m_sector->ffloors)
-				continue;
-			
-			for (rover = node->m_sector->ffloors; rover; rover = rover->next)
-			{
-				// Make sure it's a bustable. (And that it actually exists!)
-				if (!(rover->flags & FF_EXISTS))
-					continue;
-
-				if (!(rover->flags & FF_BUSTUP))
-					continue;
-				
-				topheight = P_GetFOFTopZ(player->mo, node->m_sector, rover, player->mo->x, player->mo->y, NULL) - player->mo->momz;
-				bottomheight = P_GetFOFBottomZ(player->mo, node->m_sector, rover, player->mo->x, player->mo->y, NULL) - player->mo->momz;
-				
-				if (player->mo->z > topheight)
-					continue;
-				
-				if (player->mo->z + player->mo->height < bottomheight)
-					continue;
-				
-				EV_CrumbleChain(NULL, rover); // node->m_sector
-				
-				// Run a linedef executor??
-				if (rover->master->flags & ML_EFFECT5)
-					P_LinedefExecute((INT16)(P_AproxDistance(rover->master->dx, rover->master->dy)>>FRACBITS), player->mo, node->m_sector);
-			}
-		}
-	}
-	
 	oldx = player->mo->x;
 	oldy = player->mo->y;