diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/RenderViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/RenderViewHelper.php
index 81e7ea01a3c9a10d369d557d1c73a035be04b46d..51c004fb635bc5ec32b1727441a66e7d62a0af93 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/RenderViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/RenderViewHelper.php
@@ -11,6 +11,10 @@ namespace TYPO3\CMS\Fluid\ViewHelpers;
  * The TYPO3 project - inspiring people to share!                         *
  *                                                                        */
 
+use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper;
+use TYPO3\CMS\Fluid\Core\ViewHelper\Facets\CompilableInterface;
+use TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface;
+
 /**
  * ViewHelper that renders a section or a specified partial
  *
@@ -69,7 +73,7 @@ namespace TYPO3\CMS\Fluid\ViewHelpers;
  *
  * @api
  */
-class RenderViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper {
+class RenderViewHelper extends AbstractViewHelper implements CompilableInterface {
 
 	/**
 	 * Renders the content.
@@ -82,13 +86,39 @@ class RenderViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelp
 	 * @api
 	 */
 	public function render($section = NULL, $partial = NULL, $arguments = array(), $optional = FALSE) {
-		$arguments = $this->loadSettingsIntoArguments($arguments);
+		return self::renderStatic(
+			array(
+				'section' => $section,
+				'partial' => $partial,
+				'arguments' => $arguments,
+				'optional' => $optional,
+			),
+			$this->buildRenderChildrenClosure(),
+			$this->renderingContext
+		);
+	}
+
+	/**
+	 * Renders the content.
+	 *
+	 * @param array $arguments
+	 * @param \Closure $renderChildrenClosure
+	 * @param RenderingContextInterface $renderingContext
+	 * @return string
+	 */
+	static public function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext) {
+		$section = $arguments['section'];
+		$partial = $arguments['partial'];
+		$optional = $arguments['optional'];
+		$arguments = static::loadSettingsIntoArguments($arguments['arguments'], $renderingContext);
 
+		$viewHelperVariableContainer = $renderingContext->getViewHelperVariableContainer();
 		if ($partial !== NULL) {
-			return $this->viewHelperVariableContainer->getView()->renderPartial($partial, $section, $arguments);
+			return $viewHelperVariableContainer->getView()->renderPartial($partial, $section, $arguments);
 		} elseif ($section !== NULL) {
-			return $this->viewHelperVariableContainer->getView()->renderSection($section, $arguments, $optional);
+			return $viewHelperVariableContainer->getView()->renderSection($section, $arguments, $optional);
 		}
+
 		return '';
 	}
 
@@ -96,11 +126,13 @@ class RenderViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelp
 	 * If $arguments['settings'] is not set, it is loaded from the TemplateVariableContainer (if it is available there).
 	 *
 	 * @param array $arguments
+	 * @param RenderingContextInterface $renderingContext
 	 * @return array
 	 */
-	protected function loadSettingsIntoArguments($arguments) {
-		if (!isset($arguments['settings']) && $this->templateVariableContainer->exists('settings')) {
-			$arguments['settings'] = $this->templateVariableContainer->get('settings');
+	static protected function loadSettingsIntoArguments($arguments, RenderingContextInterface $renderingContext) {
+		$templateVariableContainer = $renderingContext->getTemplateVariableContainer();
+		if (!isset($arguments['settings']) && $templateVariableContainer->exists('settings')) {
+			$arguments['settings'] = $templateVariableContainer->get('settings');
 		}
 		return $arguments;
 	}
diff --git a/typo3/sysext/fluid/Tests/Unit/ViewHelpers/RenderViewHelperTest.php b/typo3/sysext/fluid/Tests/Unit/ViewHelpers/RenderViewHelperTest.php
index 415c1da2117560a429bc36ebf72f163e0aa694c0..7a7ae2dc4ec260d3bf956e9477409250849c427d 100644
--- a/typo3/sysext/fluid/Tests/Unit/ViewHelpers/RenderViewHelperTest.php
+++ b/typo3/sysext/fluid/Tests/Unit/ViewHelpers/RenderViewHelperTest.php
@@ -42,7 +42,7 @@ class RenderViewHelperTest extends \TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\ViewH
 		);
 		$this->templateVariableContainer->add('settings', 'theSettings');
 
-		$actual = $this->viewHelper->_call('loadSettingsIntoArguments', $arguments);
+		$actual = $this->viewHelper->_call('loadSettingsIntoArguments', $arguments, $this->renderingContext);
 		$this->assertEquals($expected, $actual);
 	}
 
@@ -60,7 +60,7 @@ class RenderViewHelperTest extends \TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\ViewH
 		);
 		$this->templateVariableContainer->add('settings', 'theSettings');
 
-		$actual = $this->viewHelper->_call('loadSettingsIntoArguments', $arguments);
+		$actual = $this->viewHelper->_call('loadSettingsIntoArguments', $arguments, $this->renderingContext);
 		$this->assertEquals($expected, $actual);
 	}
 
@@ -75,7 +75,7 @@ class RenderViewHelperTest extends \TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\ViewH
 			'someArgument' => 'someValue'
 		);
 
-		$actual = $this->viewHelper->_call('loadSettingsIntoArguments', $arguments);
+		$actual = $this->viewHelper->_call('loadSettingsIntoArguments', $arguments, $this->renderingContext);
 		$this->assertEquals($expected, $actual);
 	}