diff --git a/lib/Doctrine/Record.php b/lib/Doctrine/Record.php
index <HASH>..<HASH> 100644
--- a/lib/Doctrine/Record.php
+++ b/lib/Doctrine/Record.php
@@ -451,7 +451,7 @@ abstract class Doctrine_Record extends Doctrine_Record_Abstract implements Count
      */
     public function hydrate(array $data)
     {
-        $this->_values = $this->cleanData($data);
+        $this->_values = array_merge($this->_values, $this->cleanData($data));
         $this->_data   = array_merge($this->_data, $data);
 
         $this->prepareIdentifiers(true);
fixed: old mapped values were deleted when data was hydrated into an existing record (lazy-loading)