{
                    Object result =
                      values == null ? 
                        valueInternalEList == null ? 
                          valueList.get(--valueListIndex) : 
                          valueInternalEList.basicGet(--valueListIndex) : 
                        values.previous();
                    if (isHandlingFeatureMap)
                    {
                      FeatureMap.Entry entry = (FeatureMap.Entry)result; 
                      preparedFeature = entry.getEStructuralFeature();
                      @SuppressWarnings("unchecked") E newPreparedResult = (E)entry.getValue();
                      preparedResult = newPreparedResult;
                    }
                    else
                    {
                      @SuppressWarnings("unchecked") E newPreparedResult = (E)result;
                      preparedResult = newPreparedResult;
                      preparedFeature = feature;
                    }
                    prepared = -3;
                    return true;
                  }