diff --git a/typo3/sysext/core/Classes/Utility/CsvUtility.php b/typo3/sysext/core/Classes/Utility/CsvUtility.php
index a744c056e12dee30c82eede3e2c78b617ae7f6ef..fcf5a99fddca0bcd4282a12b05ee76315c7eb9c1 100644
--- a/typo3/sysext/core/Classes/Utility/CsvUtility.php
+++ b/typo3/sysext/core/Classes/Utility/CsvUtility.php
@@ -22,26 +22,26 @@ class CsvUtility {
 	/**
 	 * Convert a string, formatted as CSV, into an multidimensional array
 	 *
+	 * This cannot be done by str_getcsv, since it's impossible to handle enclosed cells with a line feed in it
+	 *
 	 * @param string $input The CSV input
 	 * @param string $fieldDelimiter The field delimiter
 	 * @param string $fieldEnclosure The field enclosure
-	 * @param string $rowDelimiter The row delimiter
 	 * @param int $maximumColumns The maximum amount of columns
 	 * @return array
 	 */
-	static public function csvToArray($input, $fieldDelimiter = ',', $fieldEnclosure = '"', $rowDelimiter = LF, $maximumColumns = 0) {
+	static public function csvToArray($input, $fieldDelimiter = ',', $fieldEnclosure = '"', $maximumColumns = 0) {
 		$multiArray = array();
 		$maximumCellCount = 0;
 
-		// explode() would not work with enclosed newlines
-		$rows = str_getcsv($input, $rowDelimiter);
-
-		foreach ($rows as $row) {
-			$cells = str_getcsv($row, $fieldDelimiter, $fieldEnclosure);
-
-			$maximumCellCount = max(count($cells), $maximumCellCount);
-
-			$multiArray[] = $cells;
+		if (($handle = fopen('php://memory', 'r+')) !== FALSE) {
+			fwrite($handle, $input);
+			rewind($handle);
+			while (($cells = fgetcsv($handle, 0, $fieldDelimiter, $fieldEnclosure)) !== FALSE) {
+				$maximumCellCount = max(count($cells), $maximumCellCount);
+				$multiArray[] = $cells;
+			}
+			fclose($handle);
 		}
 
 		if ($maximumColumns > $maximumCellCount) {
@@ -66,4 +66,4 @@ class CsvUtility {
 
 		return $multiArray;
 	}
-}
\ No newline at end of file
+}
diff --git a/typo3/sysext/core/Tests/Unit/Utility/CsvUtilityTest.php b/typo3/sysext/core/Tests/Unit/Utility/CsvUtilityTest.php
index 094e7c378abda9e4dd01ed7b426381b3c7d1cff9..9ef3b4ef8b45a74c6902bb6f6e76458c252042be 100644
--- a/typo3/sysext/core/Tests/Unit/Utility/CsvUtilityTest.php
+++ b/typo3/sysext/core/Tests/Unit/Utility/CsvUtilityTest.php
@@ -29,8 +29,7 @@ class CsvUtilityTest extends UnitTestCase {
 			'Valid data' => array(
 				'input'  => 'Column A, Column B, Column C' . LF . 'Value, Value2, Value 3',
 				'fieldDelimiter' => ',',
-				'fieldEnclosure' => '',
-				'rowDelimiter' => LF,
+				'fieldEnclosure' => '"',
 				'maximumColumns' => 0,
 				'expectedResult' => array(
 					array('Column A', ' Column B', ' Column C'),
@@ -42,7 +41,6 @@ class CsvUtilityTest extends UnitTestCase {
 				'input'  => '"Column A", "Column B", "Column C"' . LF . '"Value", "Value2", "Value 3"',
 				'fieldDelimiter' => ',',
 				'fieldEnclosure' => '"',
-				'rowDelimiter' => LF,
 				'maximumColumns' => 0,
 				'expectedResult' => array(
 					array('Column A', 'Column B', 'Column C'),
@@ -54,7 +52,6 @@ class CsvUtilityTest extends UnitTestCase {
 				'input'  => '"Column A"; "Column B"; "Column C"' . LF . '"Value"; "Value2"; "Value 3"',
 				'fieldDelimiter' => ';',
 				'fieldEnclosure' => '"',
-				'rowDelimiter' => LF,
 				'maximumColumns' => 0,
 				'expectedResult' => array(
 					array('Column A', 'Column B', 'Column C'),
@@ -66,7 +63,6 @@ class CsvUtilityTest extends UnitTestCase {
 				'input'  => '"Column A"; "Column B"; "Column C"; "Column D"' . LF . '"Value"; "Value2"; "Value 3"',
 				'fieldDelimiter' => ';',
 				'fieldEnclosure' => '"',
-				'rowDelimiter' => LF,
 				'maximumColumns' => 2,
 				'expectedResult' => array(
 					array('Column A', 'Column B'),
@@ -78,24 +74,11 @@ class CsvUtilityTest extends UnitTestCase {
 				'input'  => '"Column A", "Column B", "Column C"' . LF . '"Value", "Value2", "Value 3"',
 				'fieldDelimiter' => ';',
 				'fieldEnclosure' => '"',
-				'rowDelimiter' => LF,
 				'maximumColumns' => 0,
 				'expectedResult' => array(
 					array('Column A, "Column B", "Column C"'),
 					array('Value, "Value2", "Value 3"')
 				)
-			),
-
-			'Data with comma as field delimiter and semicolons as row delimiter' => array(
-				'input'  => '"Column A", "Column B", "Column C";"Value", "Value2", "Value 3"',
-				'fieldDelimiter' => ',',
-				'fieldEnclosure' => '"',
-				'rowDelimiter' => ';',
-				'maximumColumns' => 0,
-				'expectedResult' => array(
-					array('Column A', 'Column B', 'Column C'),
-					array('Value', 'Value2', 'Value 3')
-				)
 			)
 		);
 	}
@@ -104,7 +87,7 @@ class CsvUtilityTest extends UnitTestCase {
 	 * @dataProvider csvToArrayDataProvider
 	 * @test
 	 */
-	public function csvToArraySplitsAsExpected($input, $fieldDelimiter, $fieldEnclosure, $rowDelimiter, $maximumColumns, $expectedResult) {
-		$this->assertEquals($expectedResult, CsvUtility::csvToArray($input, $fieldDelimiter, $fieldEnclosure, $rowDelimiter, $maximumColumns));
+	public function csvToArraySplitsAsExpected($input, $fieldDelimiter, $fieldEnclosure, $maximumColumns, $expectedResult) {
+		$this->assertEquals($expectedResult, CsvUtility::csvToArray($input, $fieldDelimiter, $fieldEnclosure, $maximumColumns));
 	}
 }
\ No newline at end of file
diff --git a/typo3/sysext/frontend/Classes/DataProcessing/CommaSeparatedValueProcessor.php b/typo3/sysext/frontend/Classes/DataProcessing/CommaSeparatedValueProcessor.php
index 3fe236e6840e3936b6b8718d423339044446510d..ebdaaf3f9873f333cbf7198040b4491e3aee507f 100644
--- a/typo3/sysext/frontend/Classes/DataProcessing/CommaSeparatedValueProcessor.php
+++ b/typo3/sysext/frontend/Classes/DataProcessing/CommaSeparatedValueProcessor.php
@@ -91,14 +91,10 @@ class CommaSeparatedValueProcessor implements DataProcessorInterface {
 		// Set the field enclosure which is " by default
 		$fieldEnclosure = $cObj->stdWrapValue('fieldEnclosure', $processorConfiguration, '"');
 
-		// Set the row delimiter which is "LF" by default
-		$rowDelimiter = $cObj->stdWrapValue('rowDelimiter', $processorConfiguration, LF);
-
 		$processedData[$targetVariableName] = CsvUtility::csvToArray(
 			$originalValue,
 			$fieldDelimiter,
 			$fieldEnclosure,
-			$rowDelimiter,
 			(int)$maximumColumns
 		);