Index: branches/SHM-3.1-dev/source/Lib/TLibCommon/TComUpsampleFilter.cpp
===================================================================
--- branches/SHM-3.1-dev/source/Lib/TLibCommon/TComUpsampleFilter.cpp	(revision 387)
+++ branches/SHM-3.1-dev/source/Lib/TLibCommon/TComUpsampleFilter.cpp	(revision 388)
@@ -156,7 +156,7 @@
   if( scaleX == 65536 && scaleY == 65536 ) // ratio 1x
   {
-    piSrcY = piSrcBufY - scalEL.getWindowLeftOffset() - scalEL.getWindowTopOffset() * strideEL;
-    piDstY = piDstBufY;
-    for( i = 0; i < heightEL; i++ )
+    piSrcY = piSrcBufY;
+    piDstY = piDstBufY + scalEL.getWindowLeftOffset() + scalEL.getWindowTopOffset() * strideEL;
+    for( i = 0; i < heightBL; i++ )
     {
       memcpy( piDstY, piSrcY, sizeof(Pel) * widthBL );
@@ -174,11 +174,11 @@
     strideEL  = pcUsPic->getCStride();
 
-    piSrcU = piSrcBufU - ( scalEL.getWindowLeftOffset() >> 1 ) - ( scalEL.getWindowTopOffset() >> 1 ) * strideEL;
-    piSrcV = piSrcBufV - ( scalEL.getWindowLeftOffset() >> 1 ) - ( scalEL.getWindowTopOffset() >> 1 ) * strideEL;
-
-    piDstU = piDstBufU;
-    piDstV = piDstBufV;
-
-    for( i = 0; i < heightEL; i++ )
+    piSrcU = piSrcBufU;
+    piSrcV = piSrcBufV;
+
+    piDstU = piDstBufU + ( scalEL.getWindowLeftOffset() >> 1 ) + ( scalEL.getWindowTopOffset() >> 1 ) * strideEL;
+    piDstV = piDstBufV + ( scalEL.getWindowLeftOffset() >> 1 ) + ( scalEL.getWindowTopOffset() >> 1 ) * strideEL;
+
+    for( i = 0; i < heightBL; i++ )
     {
       memcpy( piDstU, piSrcU, sizeof(Pel) * widthBL );
@@ -623,5 +623,5 @@
 #endif
     }
-
+  }
     pcUsPic->setBorderExtension(false);
     pcUsPic->extendPicBorder   (); // extend the border.
@@ -631,5 +631,4 @@
     pcTempPic->setBorderExtension(false);
     pcBasePic->setBorderExtension(false);
-  }
 }
 #endif //SVC_EXTENSION
