diff --git a/BuGS/game.s b/BuGS/game.s
index 6e2fd1f..bccb66a 100644
--- a/BuGS/game.s
+++ b/BuGS/game.s
@@ -102,7 +102,6 @@ gameDone anop
 
 
 drawDirtyGameTiles entry
-        stz numDirtyGameTiles
         _drawDirtyGameRow 0
         _drawDirtyGameRow 1
         _drawDirtyGameRow 2
diff --git a/BuGS/gameFlea.s b/BuGS/gameFlea.s
index fa0965c..c1cef89 100644
--- a/BuGS/gameFlea.s
+++ b/BuGS/gameFlea.s
@@ -25,22 +25,19 @@ FLEA_FAST_UPDATES_PER_TILE  equ TILE_PIXEL_HEIGHT/4-1
 
 drawFlea entry
         lda fleaState
-        beq drawFlea_done
-        
+        bne drawFlea_cont
+        rtl
+
+drawFlea_cont anop
         ldy fleaScreenOffset
         ldx fleaSprite
         jsl fleaJump
         
-        ldy numDirtyGameTiles
+        _dirtyGameOrNonGameTile fleaTileOffsets
+        _dirtyGameOrNonGameTile fleaTileOffsets+2
+        _dirtyGameOrNonGameTile fleaTileOffsets+4
+        _dirtyGameOrNonGameTile fleaTileOffsets+6
         
-        _dirtyGameTileWithY fleaTileOffsets
-        _dirtyGameTileWithY fleaTileOffsets+2
-        _dirtyGameTileWithY fleaTileOffsets+4
-        _dirtyGameTileWithY fleaTileOffsets+6
-        
-        sty numDirtyGameTiles
-        
-drawFlea_done anop
         rtl
         
         
diff --git a/BuGS/gameSegments.s b/BuGS/gameSegments.s
index f131854..daab9c1 100644
--- a/BuGS/gameSegments.s
+++ b/BuGS/gameSegments.s
@@ -60,10 +60,10 @@ drawSegments_handleTiles anop
         asl a
         tay
         
-        _dirtyGameTile segmentTileOffsets
-        _dirtyGameTile segmentTileOffsets+2
-        _dirtyGameTile segmentTileOffsets+4
-        _dirtyGameTile segmentTileOffsets+6
+        _dirtyGameTileWithY segmentTileOffsets
+        _dirtyGameTileWithY segmentTileOffsets+2
+        _dirtyGameTileWithY segmentTileOffsets+4
+        _dirtyGameTileWithY segmentTileOffsets+6
         plx
         
 drawSegments_skipSegment anop
diff --git a/BuGS/global.macros b/BuGS/global.macros
index 2e471ed..5a11c3c 100644
--- a/BuGS/global.macros
+++ b/BuGS/global.macros
@@ -9,7 +9,6 @@
 
         macro
         _drawDirtyGameRow &rowNum
-        trace on
         short i,m
         lda >BORDER_COLOUR_REGISTER
         and #$f0
@@ -64,48 +63,16 @@ _drawDirtyGameRow_wait&rowNum anop
 _drawDirtyGameRow_skip&tileOffset anop
 &tileOffset seta &tileOffset+2
         aif &tileOffset<&lastTileOffset,.drawDirtyGameRowLoop
-        trace off
         
         mend
 
 ; This macro uses the Y register as an index into the tile offsets.  This is
 ; needed for segments because each segment has their own dirty tile offsets.
-        macro
-        _dirtyGameTile &tileOffset
-        
-        ldx &tileOffset,y
-        lda tileDirty,x
-        bne _dirtyGameTile_skip&SYSCNT
-        lda #TILE_STATE_DIRTY
-        sta tileDirty,x
-        txa
-        ldx numDirtyGameTiles
-        sta dirtyGameTiles,x
-        inx
-        inx
-        stx numDirtyGameTiles
-        
-_dirtyGameTile_skip&SYSCNT anop
-        mend
-        
-        
-
-; Call this with Y already loaded with the numDirtyGameTiles.  Also, the new
-; numDirtyGameTiles is left in Y.  The caller must store it.
         macro
         _dirtyGameTileWithY &tileOffset
-        
-        ldx &tileOffset
-        lda tileDirty,x
-        bne _dirtyGameTileWithY_skip&SYSCNT
+        ldx &tileOffset,y
         lda #TILE_STATE_DIRTY
         sta tileDirty,x
-        txa
-        sta dirtyGameTiles,y
-        iny
-        iny
-        
-_dirtyGameTileWithY_skip&SYSCNT anop
         mend
         
         
@@ -113,23 +80,20 @@ _dirtyGameTileWithY_skip&SYSCNT anop
         _dirtyGameOrNonGameTile &tileOffset
 
         ldx &tileOffset
+        cpx #RHS_FIRST_TILE_OFFSET
+        bge _dirtyGameTile_nonGame&SYSCNT
+        lda #TILE_STATE_DIRTY
+        sta tileDirty,x
+        bra _dirtyGameTile_skip&SYSCNT
+
+_dirtyGameTile_nonGame&SYSCNT anop
         lda tileDirty,x
         bne _dirtyGameTile_skip&SYSCNT
         lda #TILE_STATE_DIRTY
         sta tileDirty,x
-        txa
-        cmp #RHS_FIRST_TILE_OFFSET
-        bge _dirtyGameTile_nonGame&SYSCNT
         
-        ldy numDirtyGameTiles
-        sta dirtyGameTiles,y
-        iny
-        iny
-        sty numDirtyGameTiles
-        bra _dirtyGameTile_skip&SYSCNT
-        
-_dirtyGameTile_nonGame&SYSCNT anop
         ldy numDirtyNonGameTiles
+        txa
         sta dirtyNonGameTiles,y
         iny
         iny
diff --git a/BuGS/tiles.c b/BuGS/tiles.c
index 3834adc..aa1eefc 100644
--- a/BuGS/tiles.c
+++ b/BuGS/tiles.c
@@ -37,12 +37,7 @@
 #define STARTING_NUM_MUSHROOMS 30
 #define STARTING_NUM_PLAYERS 3
 
-#define ADD_DIRTY_GAME_TILE(tileNum)                                        \
-    if (!tileDirty[tileNum]) {                                              \
-        tileDirty[tileNum] = 1;                                             \
-        dirtyGameTiles[numDirtyGameTiles / 2] = ((tileNum) * sizeof(word)); \
-        numDirtyGameTiles += 2;                                             \
-    }
+#define ADD_DIRTY_GAME_TILE(tileNum) tileDirty[tileNum] = 1;
 
 #define ADD_DIRTY_NON_GAME_TILE(tileNum)                                          \
     if (!tileDirty[tileNum]) {                                                    \
@@ -61,9 +56,6 @@ tTileOffset tileBelow[TOTAL_NUM_TILES];
 tTileOffset tileLeft[TOTAL_NUM_TILES];
 tTileOffset tileRight[TOTAL_NUM_TILES];
 
-tTileOffset dirtyGameTiles[NUM_GAME_TILES + GAME_NUM_TILES_TALL];
-word numDirtyGameTiles;
-
 tTileOffset dirtyNonGameTiles[NUM_NON_GAME_TILES];
 word numDirtyNonGameTiles;
 
@@ -179,7 +171,6 @@ void initTiles(void)
         }
     }
     
-    numDirtyGameTiles = 0;
     numDirtyNonGameTiles = 0;
 }
 
diff --git a/BuGS/tiles.h b/BuGS/tiles.h
index 24ced39..445d9ce 100644
--- a/BuGS/tiles.h
+++ b/BuGS/tiles.h
@@ -113,8 +113,6 @@ extern tTileOffset tileBelow[TOTAL_NUM_TILES];
 extern tTileOffset tileLeft[TOTAL_NUM_TILES];
 extern tTileOffset tileRight[TOTAL_NUM_TILES];
 
-extern tTileOffset dirtyGameTiles[NUM_GAME_TILES + GAME_NUM_TILES_TALL];
-extern word numDirtyGameTiles;
 extern tTileOffset dirtyNonGameTiles[NUM_NON_GAME_TILES];
 extern word numDirtyNonGameTiles;