And I fixed most of the bugs that were pissing me off last time I worked on it... Not bugs that you guys saw, but stuff that got there after some radical changes in the code. I revamped the whole tileset thing, code-wise. At the beginning, the tileset selection was just 2 numbers... left tile # and right tile #. Then we had walltiles on top of that... And now we have LVZ on top of that... So it was starting to get messy. And I wanted to eventually add in a 'block' thing. A block would be a set of tiles/lvz images that you defined and you can put it as many times as you want. So it should be a bit easier to do that with the new Tileset class... Tools should be a bit faster too, because I removed A LOT of parameters getting passed around functions. All the tileset related values and all tool-options related values are stored in just two objects available to the whole class. For example, the DrawBaseLine header looked like: Private Sub DrawBaseLine(tilenr As Integer, _
startx As Integer, startY As Integer, _
endX As Integer, endY As Integer, _
StepX As Integer, _
StepY As Integer, _
undoch As Changes, _
multTileX As Integer, _
multTileY As Integer, _
Optional onpreview As Boolean = True, Optional Refresh As Boolean = True, _
Optional appendundo As Boolean = True, _
Optional tagwalltiles As Boolean = False, _
Optional Left As Boolean = True) It's now: Private Sub DrawBaseLine(ByVal startx As Integer, ByVal startY As Integer, _
ByVal endX As Integer, ByVal endY As Integer, _
undoch As Changes, _
onpreview As Boolean, Refresh As Boolean, _
appendundo As Boolean) And that method is probably the one slowing you down when drawing very thick lines and the preview is real slow... So it will probably help. But it's still far from being able to compile again. We basically need to go through the whole code and fix that.