diff --git a/LCS/PyCommon/subprocess.py b/LCS/PyCommon/subprocess.py
index dfdb4aadf90e57a43c54a5e22e5f836b841cf2d4..3d6d5ddc2b79b13478294b6dfc582f7ee2dae08b 100644
--- a/LCS/PyCommon/subprocess.py
+++ b/LCS/PyCommon/subprocess.py
@@ -51,9 +51,10 @@ class PipeReader:
     def readlines(self, timeout=None):
         self.__fill_line_buffer(timeout)
 
-        lines = self.__line_buffer.split('\n')
-        if lines and not lines[-1].endswith('\n'):
-            self.__line_buffer = lines[-1]
-            lines = lines[:-2]
+        last_line_end_idx = self.__line_buffer.rfind('\n')
+        head = self.__line_buffer[:last_line_end_idx]
+        self.__line_buffer = self.__line_buffer[last_line_end_idx:]
+
+        lines = [l for l in head.split('\n') if l]
 
         return lines