diff --git a/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c b/firmware/target/arm/as3525/sansa-
index 438020f..f85d123 100644
--- a/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c
+++ b/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c
@@ -319,12 +319,16 @@ void lcd_yuv_set_options(unsigned options)


#ifndef BOOTLOADER
-static void lcd_window_blit(int xmin, int ymin, int xmax, int ymax)
+static void lcd_window_blit_x(int xmin, int xmax)
{
lcd_write_reg(R_HORIZ_RAM_ADDR_POS,
((LCD_WIDTH-1 - xmin) << 8) | (LCD_WIDTH-1 - xmax));
+}
+
+static void lcd_window_blit_y(int ymin, int ymax, int end)
+{
lcd_write_reg(R_VERT_RAM_ADDR_POS, (ymax << 8) | ymin);
- lcd_write_reg(R_RAM_ADDR_SET, (ymin << 8) | (LCD_WIDTH-1 - xmin));
+ lcd_write_reg(R_RAM_ADDR_SET, (ymin << 8) | (LCD_WIDTH-1 - end));
}

/* Line write helper function for lcd_yuv_blit. Write two lines of yuv420. */
@@ -357,11 +361,13 @@ void lcd_blit_yuv(unsigned char * const src[3],
yuv_src[1] = src[1] + (z >> 2) + (src_x >> 1);
yuv_src[2] = src[2] + (yuv_src[1] - src[1]);

+ lcd_window_blit_x(x, x+width-1);
+
if (lcd_yuv_options & LCD_YUV_DITHER)
{
do
{
- lcd_window_blit(y, x, y+1, x+width-1);
+ lcd_window_blit_y(y, y+1, x);

lcd_write_cmd(R_WRITE_DATA_2_GRAM);

@@ -377,7 +383,7 @@ void lcd_blit_yuv(unsigned char * const src[3],
{
do
{
- lcd_window_blit(y, x, y+1, x+width-1);
+ lcd_window_blit_y(y, y+1, x);

lcd_write_cmd(R_WRITE_DATA_2_GRAM);