diff --git a/pattern_frame_buffer/include/image_patterns.h b/pattern_frame_buffer/include/image_patterns.h
index 0d64a2072f858e330b12bb56d812d834b58e1ebc..a6c31db1b0586772e116a6a19becc05d8b57ecc7 100644
--- a/pattern_frame_buffer/include/image_patterns.h
+++ b/pattern_frame_buffer/include/image_patterns.h
@@ -18,7 +18,7 @@
   #error "Please, specify the maximum image height with the IMG_MAX_IMAGE_HEIGHT macro"
 #endif
 
-extern unsigned char img_pattern_data[IMG_MAX_NUM_IMAGES][IMG_MAX_IMAGE_WIDTH][IMG_MAX_IMAGE_HEIGHT][3];
+extern unsigned char img_pattern_data[IMG_MAX_NUM_IMAGES][IMG_MAX_IMAGE_HEIGHT][IMG_MAX_IMAGE_WIDTH][3];
 
 void img_patterns_init(TMemory *memory,unsigned short int ram_base_address);
 
diff --git a/pattern_frame_buffer/src/image_patterns.c b/pattern_frame_buffer/src/image_patterns.c
index 85f7aadce9cb2cc2f5aeb8924d5fe203065bbc54..3988cbe3d187fb2d61f02230e8dcf12ad8ce70ce 100644
--- a/pattern_frame_buffer/src/image_patterns.c
+++ b/pattern_frame_buffer/src/image_patterns.c
@@ -5,7 +5,7 @@
 #include "ram.h"
 
 // private variables
-unsigned char img_pattern_data[IMG_MAX_NUM_IMAGES][IMG_MAX_IMAGE_WIDTH][IMG_MAX_IMAGE_HEIGHT][3]={{{{0}}}};
+unsigned char img_pattern_data[IMG_MAX_NUM_IMAGES][IMG_MAX_IMAGE_HEIGHT][IMG_MAX_IMAGE_WIDTH][3]={{{{0}}}};
 
 // private functions
 void img_patterns_compute_range(unsigned short int area_min,unsigned short int area_max,short int pattern_start,unsigned short int max_size,unsigned short int *buff_start, unsigned short int *buff_end,unsigned char *img_start)
@@ -36,7 +36,7 @@ void img_patterns_compute_range(unsigned short int area_min,unsigned short int a
   if(*buff_start+cp_size>area_max)
   {
     *buff_end=area_max;
-    cp_size-=area_max;
+    cp_size-=(*buff_start+cp_size-area_max);
   }
   else
     *buff_end=*buff_start+cp_size;