diff --git a/src/FieldUtilsTrait.php b/src/FieldUtilsTrait.php
index dac4008..2b846e9 100644
--- a/src/FieldUtilsTrait.php
+++ b/src/FieldUtilsTrait.php
@@ -32,12 +32,12 @@ trait FieldUtilsTrait {
    * @param $entity_type_id
    * @param \Drupal\field\Entity\FieldConfig $source_field
    *
-   * @return \Drupal\Core\Field\FieldStorageDefinitionInterface[]
+   * @return \Drupal\Core\Field\FieldDefinitionInterface[]
    */
   protected function getDestinationFields($entity_type_id, FieldConfig $source_field = NULL) {
     $destination_fields = [];
 
-    $fields = $this->FieldManager()->getFieldStorageDefinitions($entity_type_id);
+    $fields = $this->FieldManager()->getBaseFieldDefinitions($entity_type_id);
     foreach ($fields as $field_id => $field) {
       if ($this->isDestinationFieldCompatible($field, $source_field)) {
         $destination_fields[$field_id] = $field;
@@ -91,16 +91,16 @@ trait FieldUtilsTrait {
    *
    * @todo Should this be on our FieldManager service?
    *
-   * @param \Drupal\Core\Field\FieldStorageDefinitionInterface $definition
+   * @param \Drupal\Core\Field\FieldDefinitionInterface $definition
    *  Field definition on entity type to update to check.
    * @param \Drupal\Core\Field\FieldDefinitionInterface $source_field
    *  Source field to check compatibility against. If none then check generally.
    *
    * @return bool
    */
-  protected function isDestinationFieldCompatible(FieldStorageDefinitionInterface $definition, FieldDefinitionInterface $source_field = NULL) {
+  protected function isDestinationFieldCompatible(FieldDefinitionInterface $definition, FieldDefinitionInterface $source_field = NULL) {
     // @todo Create field definition wrapper class to treat FieldDefinitionInterface and FieldStorageDefinitionInterface the same.
-    if ($definition instanceof BaseFieldDefinition && $definition->isReadOnly()) {
+    if ($definition->getName() != 'moderation_state' && $definition instanceof BaseFieldDefinition && $definition->isReadOnly()) {
       return FALSE;
     }
     // Don't allow updates on updates!
@@ -166,10 +166,10 @@ trait FieldUtilsTrait {
    * @param $entity_type_id
    * @param $field_name
    *
-   * @return \Drupal\Core\Field\FieldStorageDefinitionInterface|null
+   * @return \Drupal\Core\Field\FieldDefinitionInterface|null
    */
   protected function getFieldStorageDefinition($entity_type_id, $field_name) {
-    $definitions = $this->FieldManager()->getFieldStorageDefinitions($entity_type_id);
+    $definitions = $this->FieldManager()->getBaseFieldDefinitions($entity_type_id);
     if (!isset($definitions[$field_name])) {
       return NULL;
     }
