diff --git a/typo3/sysext/form/Classes/Utility/CompatibilityLayerUtility.php b/typo3/sysext/form/Classes/Utility/CompatibilityLayerUtility.php
index a3680797a4321a6fd35cfb4587281a4f7499d630..27d126784f8247d61cbd49360616cbc35eab0289 100644
--- a/typo3/sysext/form/Classes/Utility/CompatibilityLayerUtility.php
+++ b/typo3/sysext/form/Classes/Utility/CompatibilityLayerUtility.php
@@ -201,6 +201,13 @@ class CompatibilityLayerUtility {
 			$formContainerWrap = explode($containerWrapReturn['marker'], $formLayout);
 			$layout['containerInnerWrap'] = $formContainerWrap;
 			$element->setLayout($layout);
+			$classFromLayout = $this->getElementClassFromLayout('form');
+			if (!empty($classFromLayout)) {
+				if (!empty($element->getAdditionalArgument('class'))) {
+					$classFromLayout .= ' ' . $element->getAdditionalArgument('class');
+				}
+				$element->setAdditionalArgument('class', $classFromLayout);
+			}
 			return;
 		}
 		if (in_array($element->getElementType(), $this->registeredFormElements)) {
@@ -288,7 +295,7 @@ class CompatibilityLayerUtility {
 				if ($dom) {
 					$node = $dom->firstChild;
 					if ($node) {
-						if (strlen($node->getAttribute('class')) > 0) {
+						if ($node->getAttribute('class') !== '') {
 							$class = $node->getAttribute('class') . ' ';
 						}
 						$class .= 'csc-form-' . $element->getElementCounter() . ' csc-form-element csc-form-element-' . $element->getElementTypeLowerCase();
@@ -351,6 +358,13 @@ class CompatibilityLayerUtility {
 				$layout = $element->getLayout();
 				$layout['containerInnerWrap'] = $containerWrap;
 				$element->setLayout($layout);
+				$classFromLayout = $this->getElementClassFromLayout('fieldset');
+				if (!empty($classFromLayout)) {
+					if (!empty($element->getHtmlAttribute('class'))) {
+						$classFromLayout .= ' ' . $element->getHtmlAttribute('class');
+					}
+					$element->setHtmlAttribute('class', $classFromLayout);
+				}
 			}
 			return;
 		}
@@ -371,6 +385,31 @@ class CompatibilityLayerUtility {
 		return $html;
 	}
 
+	/**
+	 * Return the class attribute for a element defined by layout.
+	 *
+	 * @param string $elementName
+	 * @return string
+	 */
+	protected function getElementClassFromLayout($elementName = '') {
+		$class = '';
+		$libxmlUseInternalErrors = libxml_use_internal_errors(true);
+		$dom = new \DOMDocument('1.0', 'utf-8');
+		$dom->formatOutput = TRUE;
+		$dom->preserveWhiteSpace = FALSE;
+		if ($dom->loadXML($this->getGlobalLayoutByElementType(strtoupper($elementName)))) {
+			$nodes = $dom->getElementsByTagName($elementName);
+			if ($nodes->length) {
+				$node = $nodes->item(0);
+				if ($node && $node->getAttribute('class') !== '') {
+					$class = $node->getAttribute('class');
+				}
+			}
+		}
+		libxml_use_internal_errors($libxmlUseInternalErrors);
+		return $class;
+	}
+
 	/**
 	 * Try to explode the element layout into 2 parts to get the
 	 * outer wrapping