public function isDirty($object, $propertyName)
    {
        if ($this->isReconstitutedEntity($object) === false) {
            return true;
        }

        if (property_exists($object, 'Flow_Persistence_LazyLoadingObject_thawProperties')) {
            return false;
        }

        $currentValue = ObjectAccess::getProperty($object, $propertyName, true);
        $cleanData =& $this->reconstitutedEntitiesData[$this->getIdentifierByObject($object)]['properties'][$propertyName];

        if (($currentValue instanceof LazySplObjectStorage && !$currentValue->isInitialized())
                || ($currentValue === null && $cleanData['value'] === null)) {
            return false;
        }

        if ($cleanData['multivalue']) {
            return $this->isMultiValuedPropertyDirty($cleanData, $currentValue);
        } else {
            return $this->isSingleValuedPropertyDirty($cleanData['type'], $cleanData['value'], $currentValue);
        }
    }