public void relateAcrossR603To(Statement_c target, boolean notifyChanges) {
    if (target == null) return;

    if (target == IsSupertypeStatement) return; // already related

    if (IsSupertypeStatement != target) {

      Object oldKey = getInstanceKey();

      if (IsSupertypeStatement != null) {

        IsSupertypeStatement.clearBackPointerR603To(this);

        if (Boolean.valueOf(System.getenv("PTC_MCC_ENABLED")) == true) { // $NON-NLS-1$
          Ooaofooa.log.println(
              ILogger.CONSISTENCY,
              "AssignToMember_c.relateAcrossR603To(Statement_c target)",
              "Relate performed across R603 from Assign to Member to Statement without unrelate of prior instance.");
        }
      }

      IsSupertypeStatement = target;
      m_statement_id = target.getStatement_id();
      updateInstanceKey(oldKey, getInstanceKey());
      target.setBackPointerR603To(this);
      target.addRef();
    }
  }