diff --git a/typo3/sysext/core/Classes/Page/PageRenderer.php b/typo3/sysext/core/Classes/Page/PageRenderer.php
index a29d0cf7313896f4665cd8b39833c9f9d49ff9e8..104cf6ddc5cea9383807f56a8a6fab108edf9cae 100644
--- a/typo3/sysext/core/Classes/Page/PageRenderer.php
+++ b/typo3/sysext/core/Classes/Page/PageRenderer.php
@@ -2359,10 +2359,11 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface {
 					$wrapArr = explode($properties['splitChar'] ?: '|', $properties['allWrap'], 2);
 					$tag = $wrapArr[0] . $tag . $wrapArr[1];
 				}
+				$tag .= LF;
 				if ($properties['forceOnTop']) {
-					$cssFiles = $tag . LF . $cssFiles;
+					$cssFiles = $tag . $cssFiles;
 				} else {
-					$cssFiles .= LF . $tag;
+					$cssFiles .= $tag;
 				}
 			}
 		}
@@ -2389,10 +2390,11 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface {
 					$wrapArr = explode($properties['splitChar'] ?: '|', $properties['allWrap'], 2);
 					$tag = $wrapArr[0] . $tag . $wrapArr[1];
 				}
+				$tag .= LF;
 				if ($properties['forceOnTop']) {
-					$cssFiles = $tag . LF . $cssFiles;
+					$cssFiles = $tag . $cssFiles;
 				} else {
-					$cssFiles .= LF . $tag;
+					$cssFiles .= $tag;
 				}
 			}
 		}
@@ -2408,10 +2410,11 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface {
 		$cssInline = '';
 		if (count($this->cssInline)) {
 			foreach ($this->cssInline as $name => $properties) {
+				$cssCode = '/*' . htmlspecialchars($name) . '*/' . LF . $properties['code'] . LF;
 				if ($properties['forceOnTop']) {
-					$cssInline = '/*' . htmlspecialchars($name) . '*/' . LF . $properties['code'] . LF . $cssInline;
+					$cssInline = $cssCode . $cssInline;
 				} else {
-					$cssInline .= '/*' . htmlspecialchars($name) . '*/' . LF . $properties['code'] . LF;
+					$cssInline .= $cssCode;
 				}
 			}
 			$cssInline = $this->inlineCssWrap[0] . $cssInline . $this->inlineCssWrap[1];
@@ -2436,17 +2439,18 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface {
 					$wrapArr = explode($properties['splitChar'] ?: '|', $properties['allWrap'], 2);
 					$tag = $wrapArr[0] . $tag . $wrapArr[1];
 				}
+				$tag .= LF;
 				if ($properties['forceOnTop']) {
 					if ($properties['section'] === self::PART_HEADER) {
-						$jsLibs = $tag . LF . $jsLibs;
+						$jsLibs = $tag . $jsLibs;
 					} else {
-						$jsFooterLibs = $tag . LF . $jsFooterLibs;
+						$jsFooterLibs = $tag . $jsFooterLibs;
 					}
 				} else {
 					if ($properties['section'] === self::PART_HEADER) {
-						$jsLibs .= LF . $tag;
+						$jsLibs .= $tag;
 					} else {
-						$jsFooterLibs .= LF . $tag;
+						$jsFooterLibs .= $tag;
 					}
 				}
 			}
@@ -2475,23 +2479,24 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface {
 					$wrapArr = explode($properties['splitChar'] ?: '|', $properties['allWrap'], 2);
 					$tag = $wrapArr[0] . $tag . $wrapArr[1];
 				}
+				$tag .= LF;
 				if ($properties['forceOnTop']) {
 					if ($properties['section'] === self::PART_HEADER) {
-						$jsFiles = $tag . LF . $jsFiles;
+						$jsFiles = $tag . $jsFiles;
 					} else {
-						$jsFooterFiles = $tag . LF . $jsFooterFiles;
+						$jsFooterFiles = $tag . $jsFooterFiles;
 					}
 				} else {
 					if ($properties['section'] === self::PART_HEADER) {
-						$jsFiles .= LF . $tag;
+						$jsFiles .= $tag;
 					} else {
-						$jsFooterFiles .= LF . $tag;
+						$jsFooterFiles .= $tag;
 					}
 				}
 			}
 		}
 		if ($this->moveJsFromHeaderToFooter) {
-			$jsFooterFiles = $jsFiles . LF . $jsFooterFiles;
+			$jsFooterFiles = $jsFiles . $jsFooterFiles;
 			$jsFiles = '';
 		}
 		return array($jsFiles, $jsFooterFiles);
@@ -2507,17 +2512,18 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface {
 		$jsFooterInline = '';
 		if (count($this->jsInline)) {
 			foreach ($this->jsInline as $name => $properties) {
+				$jsCode = '/*' . htmlspecialchars($name) . '*/' . LF . $properties['code'] . LF;
 				if ($properties['forceOnTop']) {
 					if ($properties['section'] === self::PART_HEADER) {
-						$jsInline = '/*' . htmlspecialchars($name) . '*/' . LF . $properties['code'] . LF . $jsInline;
+						$jsInline = $jsCode . $jsInline;
 					} else {
-						$jsFooterInline = '/*' . htmlspecialchars($name) . '*/' . LF . $properties['code'] . LF . $jsFooterInline;
+						$jsFooterInline = $jsCode . $jsFooterInline;
 					}
 				} else {
 					if ($properties['section'] === self::PART_HEADER) {
-						$jsInline .= '/*' . htmlspecialchars($name) . '*/' . LF . $properties['code'] . LF;
+						$jsInline .= $jsCode;
 					} else {
-						$jsFooterInline .= '/*' . htmlspecialchars($name) . '*/' . LF . $properties['code'] . LF;
+						$jsFooterInline .= $jsCode;
 					}
 				}
 			}
@@ -2529,7 +2535,7 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface {
 			$jsFooterInline = $this->inlineJavascriptWrap[0] . $jsFooterInline . $this->inlineJavascriptWrap[1];
 		}
 		if ($this->moveJsFromHeaderToFooter) {
-			$jsFooterInline = $jsInline . LF . $jsFooterInline;
+			$jsFooterInline = $jsInline . $jsFooterInline;
 			$jsInline = '';
 		}
 		return array($jsInline, $jsFooterInline);
diff --git a/typo3/sysext/core/Classes/Resource/ResourceCompressor.php b/typo3/sysext/core/Classes/Resource/ResourceCompressor.php
index 04852a036ee39cefc3a37565ec614e7e13e7b917..a9980a274ae367c38c82a5e7aecdbef201b2c70d 100644
--- a/typo3/sysext/core/Classes/Resource/ResourceCompressor.php
+++ b/typo3/sysext/core/Classes/Resource/ResourceCompressor.php
@@ -188,19 +188,25 @@ class ResourceCompressor {
 			$filenameFromMainDir = $this->getFilenameFromMainDir($fileOptions['file']);
 			// if $options['baseDirectories'] set, we only include files below these directories
 			if ((!isset($options['baseDirectories']) || $this->checkBaseDirectory($filenameFromMainDir, array_merge($options['baseDirectories'], array($this->targetDirectory)))) && $fileOptions['media'] === 'all') {
-				$filesToInclude[] = $filenameFromMainDir;
+				if ($fileOptions['forceOnTop']) {
+					array_unshift($filesToInclude, $filenameFromMainDir);
+				} else {
+					$filesToInclude[] = $filenameFromMainDir;
+				}
 				// remove the file from the incoming file array
 				unset($cssFiles[$key]);
 			}
 		}
-		if (count($filesToInclude)) {
+		if (!empty($filesToInclude)) {
 			$targetFile = $this->createMergedCssFile($filesToInclude);
 			$targetFileRelative = $this->relativePath . $targetFile;
 			$concatenatedOptions = array(
 				'file' => $targetFileRelative,
 				'rel' => 'stylesheet',
 				'media' => 'all',
-				'compress' => TRUE
+				'compress' => TRUE,
+				'forceOnTop' => FALSE,
+				'allWrap' => ''
 			);
 			// place the merged stylesheet on top of the stylesheets
 			$cssFiles = array_merge(array($targetFileRelative => $concatenatedOptions), $cssFiles);
@@ -222,7 +228,12 @@ class ResourceCompressor {
 				continue;
 			}
 			// we remove BACK_PATH from $filename, so make it relative to root path
-			$filesToInclude[$fileOptions['section']][] = $this->getFilenameFromMainDir($fileOptions['file']);
+			$filenameFromMainDir = $this->getFilenameFromMainDir($fileOptions['file']);
+			if ($fileOptions['forceOnTop']) {
+				array_unshift($filesToInclude[$fileOptions['section']], $filenameFromMainDir);
+			} else {
+				$filesToInclude[$fileOptions['section']][] = $filenameFromMainDir;
+			}
 			// remove the file from the incoming file array
 			unset($jsFiles[$key]);
 		}