Index: src/orca/default.py =================================================================== --- src/orca/default.py (revision 4456) +++ src/orca/default.py (working copy) @@ -2828,7 +2828,8 @@ newRow = table.getRowAtIndex(index) newCol = table.getColumnAtIndex(index) - if (newRow != oldRow) or (oldParent != newParent): + if (newRow >= 0) \ + and ((newRow != oldRow) or (oldParent != newParent)): # Get the header information. In Java Swing, the # information is not exposed via the description # but is instead a header object, so we fall back @@ -2853,7 +2854,8 @@ + rolenames.rolenames[\ pyatspi.ROLE_ROW_HEADER].speech utterances.append(text) - if (newCol != oldCol) or (oldParent != newParent): + if (newCol >= 0) \ + and ((newCol != oldCol) or (oldParent != newParent)): # Don't speak Thunderbird column headers, since # it's not possible to navigate across a row. topName = self.getTopLevelName(newLocusOfFocus)