 
       if self.usesLigatures {
         if string == " " {
-          self.setNeedsDisplay(cellPosition: curPos)
+          self.markForRender(cellPosition: curPos)
         } else {
-          self.setNeedsDisplay(region: self.grid.regionOfWord(at: curPos))
+          self.markForRender(region: self.grid.regionOfWord(at: curPos))
         }
       } else {
-        self.setNeedsDisplay(cellPosition: curPos)
+        self.markForRender(cellPosition: curPos)
       }
 
       self.updateCursorWhenPutting(currentPosition: curPos, screenCursor: screenCursor)

//      NSLog("\(#function): \(position)")

      self.grid.unmarkCell(position)
      self.setNeedsDisplay(position: position)

      self.setNeedsDisplay(screenCursor: self.grid.screenCursor)
    }
  }


  fileprivate func updateCursorWhenPutting(currentPosition curPos: Position, screenCursor: Position) {
    if self.mode == .Cmdline {
      // When the cursor is in the command line, then we need this...
      self.markForRender(cellPosition: self.grid.previousCellPosition(curPos))
      self.markForRender(cellPosition: self.grid.nextCellPosition(curPos))
      self.markForRender(screenCursor: self.grid.screenCursor)
    }

    self.markForRender(screenCursor: screenCursor)
    self.markForRender(cellPosition: self.grid.screenCursor)
    self.grid.moveCursor(screenCursor)
  }

  fileprivate func markForRender(region: Region) {
    self.setNeedsDisplay(self.regionRectFor(region: region))
  }

  fileprivate func markForRender(cellPosition position: Position) {
    self.markForRender(position: position)

    if self.grid.isCellEmpty(position) {
      self.markForRender(position: self.grid.previousCellPosition(position))
    }

    if self.grid.isNextCellEmpty(position) {
      self.markForRender(position: self.grid.nextCellPosition(position))
    }
  }

  fileprivate func markForRender(position: Position) {
    self.markForRender(row: position.row, column: position.column)
  }

  fileprivate func markForRender(row: Int, column: Int) {
//    Swift.print("\(#function): \(row):\(column)")
    self.setNeedsDisplay(self.cellRectFor(row: row, column: column))
  }

  fileprivate func markForRender(screenCursor position: Position) {
    self.markForRender(position: position)
    if self.grid.isNextCellEmpty(position) {
      self.markForRender(position: self.grid.nextCellPosition(position))
    }
  }
}
