diff --git a/src/core/NEON/kernels/NEDirectConvolutionLayerOutputStageKernel.cpp b/src/core/NEON/kernels/NEDirectConvolutionLayerOutputStageKernel.cpp
index c022fa0..8c11574 100644
--- a/src/core/NEON/kernels/NEDirectConvolutionLayerOutputStageKernel.cpp
+++ b/src/core/NEON/kernels/NEDirectConvolutionLayerOutputStageKernel.cpp
@@ -110,7 +110,7 @@
     execute_window_loop(win, [&](const Coordinates & id)
     {
         int x = window_start_x;
-        for(; x < (window_end_x - window_step_x); x += window_step_x)
+        for(; x <= (window_end_x - window_step_x); x += window_step_x)
         {
             // Get bias and pointer to input
             const auto in_ptr = reinterpret_cast<const T *>(in.ptr()) + x;
@@ -175,7 +175,7 @@
     execute_window_loop(win, [&](const Coordinates &)
     {
         int x = window_start_x;
-        for(; x < (window_end_x - window_step_x); x += window_step_x)
+        for(; x <= (window_end_x - window_step_x); x += window_step_x)
         {
             // Get bias and pointer to input
             const auto in_ptr = reinterpret_cast<const T *>(in.ptr());
@@ -238,7 +238,7 @@
     {
 
         int x = window_start_x;
-        for(; x < (window_end_x - window_step_x); x += window_step_x)
+        for(; x <= (window_end_x - window_step_x); x += window_step_x)
         {
             // Get bias and pointer to input
             const auto  in_ptr = reinterpret_cast<int32_t *>(in.ptr()) + x;
@@ -323,7 +323,7 @@
     execute_window_loop(win, [&](const Coordinates &)
     {
         int x = window_start_x;
-        for(; x < (window_end_x - window_step_x); x += window_step_x)
+        for(; x <= (window_end_x - window_step_x); x += window_step_x)
         {
             // Get bias and pointer to input
             const auto  in_ptr = reinterpret_cast<int32_t *>(in.ptr()) + x;
