diff --git a/core/modules/migrate/src/Row.php b/modules/migrate/src/Row.php
index 94cb8b2..f0b7dc2 100644
--- a/core/modules/migrate/src/Row.php
+++ b/core/modules/migrate/src/Row.php
@@ -214,7 +214,21 @@ class Row {
    */
   public function setDestinationProperty($property, $value) {
     $this->rawDestination[$property] = $value;
-    NestedArray::setValue($this->destination, explode(static::PROPERTY_SEPARATOR, $property), $value, TRUE);
+    // Properties like "body/format" should be nested differently in case they
+    // are multivalued.
+    if (strstr($property, static::PROPERTY_SEPARATOR) !== FALSE && is_array($value)) {
+      foreach ($value as $key => $subvalue) {
+        // Reorder the parents array so the key if after the property name,
+        // then the subproperty.
+        $parents = explode(static::PROPERTY_SEPARATOR, $property);
+        $first = array_shift($parents);
+        array_unshift($parents, $first, $key);
+        NestedArray::setValue($this->destination, $parents, $subvalue, TRUE);
+      }
+    }
+    else {
+      NestedArray::setValue($this->destination, explode(static::PROPERTY_SEPARATOR, $property), $value, TRUE);
+    }
   }
 
   /**
