Program: 92499
Project: 92499
Buggy source:
@Override public void onItemClick(AdapterView<?> parent,View view,int position,long id){
  if (mBuilder.listCallbackCustom != null) {
    CharSequence text=null;
    if (view instanceof TextView)     text=((TextView)view).getText();
    mBuilder.listCallbackCustom.onSelection(this,view,position,text);
  }
 else   if (listType == null || listType == ListType.REGULAR) {
    if (mBuilder.autoDismiss) {
      dismiss();
    }
    if (mBuilder.listCallback != null) {
      mBuilder.listCallback.onSelection(this,view,position,mBuilder.items[position]);
    }
  }
 else {
    if (listType == ListType.MULTI) {
      final boolean shouldBeChecked=!selectedIndicesList.contains(Integer.valueOf(position));
      final CheckBox cb=(CheckBox)view.findViewById(R.id.control);
      if (shouldBeChecked) {
        selectedIndicesList.add(position);
        if (mBuilder.alwaysCallMultiChoiceCallback) {
          if (sendMultichoiceCallback()) {
            cb.setChecked(true);
          }
 else {
            selectedIndicesList.remove(Integer.valueOf(position));
          }
        }
 else {
          cb.setChecked(true);
        }
      }
 else {
        selectedIndicesList.remove(Integer.valueOf(position));
        cb.setChecked(false);
        if (mBuilder.alwaysCallMultiChoiceCallback)         sendMultichoiceCallback();
      }
    }
 else     if (listType == ListType.SINGLE) {
      boolean allowSelection=true;
      final DefaultAdapter adapter=(DefaultAdapter)mBuilder.adapter;
      final RadioButton radio=(RadioButton)view.findViewById(R.id.control);
      if (mBuilder.autoDismiss && mBuilder.positiveText == null) {
        dismiss();
        allowSelection=false;
        mBuilder.selectedIndex=position;
        sendSingleChoiceCallback(view);
      }
 else       if (mBuilder.alwaysCallSingleChoiceCallback) {
        int oldSelected=mBuilder.selectedIndex;
        mBuilder.selectedIndex=position;
        allowSelection=sendSingleChoiceCallback(view);
        mBuilder.selectedIndex=oldSelected;
      }
      if (allowSelection && mBuilder.selectedIndex != position) {
        mBuilder.selectedIndex=position;
        if (adapter.mRadioButton == null) {
          adapter.mInitRadio=true;
          adapter.notifyDataSetChanged();
        }
        if (adapter.mRadioButton != null)         adapter.mRadioButton.setChecked(false);
        radio.setChecked(true);
        adapter.mRadioButton=radio;
      }
    }
  }
}

Fixed version (ground truth):
@Override public void onItemClick(AdapterView<?> parent,View view,int position,long id){
  if (mBuilder.listCallbackCustom != null) {
    CharSequence text=null;
    if (view instanceof TextView)     text=((TextView)view).getText();
    mBuilder.listCallbackCustom.onSelection(this,view,position,text);
  }
 else   if (listType == null || listType == ListType.REGULAR) {
    if (mBuilder.autoDismiss) {
      dismiss();
    }
    if (mBuilder.listCallback != null) {
      mBuilder.listCallback.onSelection(this,view,position,mBuilder.items[position]);
    }
  }
 else {
    if (listType == ListType.MULTI) {
      final boolean shouldBeChecked=!selectedIndicesList.contains(Integer.valueOf(position));
      final CheckBox cb=(CheckBox)view.findViewById(R.id.control);
      if (shouldBeChecked) {
        selectedIndicesList.add(position);
        if (mBuilder.alwaysCallMultiChoiceCallback) {
          if (sendMultichoiceCallback()) {
            cb.setChecked(true);
          }
 else {
            selectedIndicesList.remove(Integer.valueOf(position));
          }
        }
 else {
          cb.setChecked(true);
        }
      }
 else {
        selectedIndicesList.remove(Integer.valueOf(position));
        cb.setChecked(false);
        if (mBuilder.alwaysCallMultiChoiceCallback)         sendMultichoiceCallback();
      }
    }
 else     if (listType == ListType.SINGLE) {
      boolean allowSelection=true;
      final DefaultAdapter adapter=(DefaultAdapter)mBuilder.adapter;
      final RadioButton radio=(RadioButton)view.findViewById(R.id.control);
      if (mBuilder.autoDismiss && mBuilder.positiveText == null) {
        dismiss();
        allowSelection=false;
        mBuilder.selectedIndex=position;
        sendSingleChoiceCallback(view);
      }
 else       if (mBuilder.alwaysCallSingleChoiceCallback) {
        int oldSelected=mBuilder.selectedIndex;
        mBuilder.selectedIndex=position;
        allowSelection=sendSingleChoiceCallback(view);
        mBuilder.selectedIndex=oldSelected;
      }
      if (allowSelection) {
        mBuilder.selectedIndex=position;
        radio.setChecked(true);
        adapter.notifyDataSetChanged();
      }
    }
  }
}