diff --git a/eeschema/dialogs/dialog_symbol_properties.cpp b/eeschema/dialogs/dialog_symbol_properties.cpp index ec1a674c53..25b05ba8f7 100644 --- a/eeschema/dialogs/dialog_symbol_properties.cpp +++ b/eeschema/dialogs/dialog_symbol_properties.cpp @@ -751,8 +751,14 @@ bool DIALOG_SYMBOL_PROPERTIES::TransferDataFromWindow() } else { - SCH_FIELD* newField = otherUnit->AddField( m_fields->at( ii ) ); - const_cast( newField->m_Uuid ) = KIID(); + SCH_FIELD newField( m_fields->at( ii ) ); + const_cast( newField.m_Uuid ) = KIID(); + + newField.Offset( -m_symbol->GetPosition() ); + newField.Offset( otherUnit->GetPosition() ); + + newField.SetParent( otherUnit ); + otherUnit->AddField( newField ); } }