On the screenshot, I can see that the first duplicate is not in the right position, it is drawn over! Please note that this is right to left but I don't know if that matters as this is only textures not real text!?

Some more info:

You can see that the textures have been moved over.

I simply loop through some tables and set the textures positions. I guess this is something to do with table references (index) but that shouldn't happen.

I cannot find where in my code the problem is, could somebody have a look when you have time?

@MoKaLux, by the look of your issue, and further confirmed by reading your code, it seems that you create only one Sprite for each letter (except vowels), so you can't have more than one copy of each on screen.

Fix option #1: create multiple sprites. remove line 16 and assign arabletter to arabletters_list entry on line 17. return Bitmap.new(xlf) on line 110