private boolean equalReferenceParameters(SubscriptionState anotherSubscription) {

    Map<QName, OMElement> otherRefProperties =
        anotherSubscription.getConsumerReference().getAllReferenceParameters();
    Map<QName, OMElement> myRefProperties = getConsumerReference().getAllReferenceParameters();

    /*
     * Basic comparison
     */
    if (otherRefProperties == null && myRefProperties == null) {
      return true;
    } else if (otherRefProperties == null || myRefProperties == null) {
      return false;
    } else if (otherRefProperties.size() != myRefProperties.size()) {
      return false;
    }

    /*
     * This OMElementComparator supports ignore list, but we don't use it here.
     */
    Iterator<Entry<QName, OMElement>> iterator = otherRefProperties.entrySet().iterator();
    while (iterator.hasNext()) {

      Entry<QName, OMElement> entry = iterator.next();
      if (!myRefProperties.containsKey(entry.getKey())) {
        return false;
      }

      OMElement myElement = myRefProperties.get(entry.getKey());
      OMElement otherElement = entry.getValue();

      if (!OMElementComparator.compare(myElement, otherElement)) {
        return false;
      }
    }
    return true;
  }