diff --git a/openair1/PHY/CODING/3gpplte_sse.c b/openair1/PHY/CODING/3gpplte_sse.c
index 50c084d2a8bf5e8b5ca38a616158fc624e5d853b..34fcbef6d65485502023d43bdaae9c31de1b9fe4 100755
--- a/openair1/PHY/CODING/3gpplte_sse.c
+++ b/openair1/PHY/CODING/3gpplte_sse.c
@@ -438,10 +438,10 @@ char interleave_compact_byte(short * base_interleaver,unsigned char * input, uns
   uint8_t *systematic2_ptr=(uint8_t *) output;
 #endif
 #ifndef __AVX2__
-  int input_length_words=n>>1;
+  int input_length_words=1+((n-1)>>1);
 #else
-  int input_length_words=n>>2;
-#endif
+  int input_length_words=1+((n-1)>>2);
+#endif 
   for ( i=0; i<  input_length_words ; i ++ ) {
 
 #if defined(__x86_64__) || defined(__i386__)