diff --git a/src/Data/DataAggregateInterface.php b/src/Data/DataAggregateInterface.php
index <HASH>..<HASH> 100644
--- a/src/Data/DataAggregateInterface.php
+++ b/src/Data/DataAggregateInterface.php
@@ -21,8 +21,8 @@ interface DataAggregateInterface
     /**
      * Merges new data if possible.
      *
-     * @param array $data
+     * @param array|object $data
      * @return $this
      */
-    public function mergeData(array $data);
+    public function mergeData($data);
 }
diff --git a/src/Data/DataAggregateTrait.php b/src/Data/DataAggregateTrait.php
index <HASH>..<HASH> 100644
--- a/src/Data/DataAggregateTrait.php
+++ b/src/Data/DataAggregateTrait.php
@@ -35,13 +35,16 @@ trait DataAggregateTrait
      * @param array $data
      * @return $this
      */
-    public function mergeData(array $data)
+    public function mergeData($data)
     {
         $oldData = $this->getData();
         if ($oldData === null) {
             $this->setData($data);
             return $this;
         }
+        if (is_object($data)) {
+            $data = get_object_vars($data);
+        }
         if (is_object($oldData)) {
             \mp\setValues($oldData, $data, MP_USE_SETTERS | MP_CREATE_PROPERTIES);
             $this->setData($oldData);
DataAggregate: it's possile now to merge objects