Fix an issue with the line separator in the protected areas.
diff --git a/plugins/org.eclipse.acceleo.engine/src/org/eclipse/acceleo/engine/internal/evaluation/AcceleoEvaluationContext.java b/plugins/org.eclipse.acceleo.engine/src/org/eclipse/acceleo/engine/internal/evaluation/AcceleoEvaluationContext.java
index c70f933..a4855a7 100644
--- a/plugins/org.eclipse.acceleo.engine/src/org/eclipse/acceleo/engine/internal/evaluation/AcceleoEvaluationContext.java
+++ b/plugins/org.eclipse.acceleo.engine/src/org/eclipse/acceleo/engine/internal/evaluation/AcceleoEvaluationContext.java
@@ -1011,11 +1011,6 @@
 		private String lastEOL = DOS_LINE_SEPARATOR;
 
 		/**
-		 * The gap until the next line.
-		 */
-		private int gap;
-
-		/**
 		 * Constructs our buffered reader given its underlying reader.
 		 * 
 		 * @param in
@@ -1121,8 +1116,9 @@
 				ensureOpen();
 
 				while (line == null) {
-					int previousGap = gap;
+					int bufferGap = 0;
 					if (nextChar >= nChars) {
+						bufferGap = nextChar - nChars;
 						fill();
 					}
 					if (nextChar >= nChars) {
@@ -1132,11 +1128,14 @@
 						}
 						break;
 					}
+
+					nextChar = nextChar + bufferGap;
+
 					boolean eol = false;
 					char c = 0;
 					int i;
 
-					for (i = nextChar + gap; i < nChars; i++) {
+					for (i = nextChar; i < nChars; i++) {
 						c = characterBuffer[i];
 						if (c == '\n' || c == '\r') {
 							eol = true;
@@ -1163,17 +1162,13 @@
 									&& characterBuffer[nextChar + 1] == '\n') {
 								lastEOL = DOS_LINE_SEPARATOR;
 								nextChar += 2;
-								gap = 0;
 							} else if (nextChar != max) {
 								lastEOL = "\r"; //$NON-NLS-1$
 								nextChar++;
-								gap = 0;
 							} else if (nextChar == max && DOS_LINE_SEPARATOR.equals(lastEOL)) {
 								nextChar += 2;
-								gap = 1;
 							} else if (nextChar == max) {
 								nextChar++;
-								gap = 0;
 							}
 						}
 					}
@@ -1181,8 +1176,7 @@
 					if (lineBuffer == null) {
 						lineBuffer = new StringBuilder();
 					}
-					lineBuffer
-							.append(characterBuffer, startChar + previousGap, i - (startChar + previousGap));
+					lineBuffer.append(characterBuffer, startChar, i - startChar);
 				}
 			}
 			return line;