Keyboard scan producing extra keypresses

I have an old computer keyboard that I'm trying to scan using an Arduino.
It has a 6 x 8 matrix with switches that are normally open.
My scanning routine sets a row HIGH and scans the columns for a corresponding high. All pins have 10K pulldown resistors.

The code works correctly, but I find that when multiple keys are pressed I get a phantom key.
For example, if a row 1 has a key pressed on column 1 and 2, and row 2 has a key pressed on column 1, I find that they key on row 2, column 2 is considered pressed because the voltage travels to column 2 through row 1, column 1 to row 1 column 2, making column 2 high.

This must be an old problem, is there a common solution?

Here are some pics to illustrate:

No keys pressed:

Row1 set high, "A" is held so Col1 reads high,

Row2 set high, "A", "B" and "C" are held, Col2 reads high, read as "D"

LEDs require a series resistor to limit current flow.

Ghosting diodes:

Unfortunately I think this keyboard does not have diodes. Typing "the" very quickly reads as "thke".