DialogFragment bloquea la actividad al llamar a startActivity ()

tengo unDialogFragment se suponía que debía ser simple, pero me está dando algunos grandes problemas específicamente en Jelly Bean.

La aplicación utiliza la red y aparece un diálogo que le pide al usuario que active el WiFi o que la cancele, luego la cierra. Así se extiendeDialogFragment y crea la vista como:

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {

    AlertDialog a = new AlertDialog.Builder(getActivity()).setCancelable(true).setTitle(R.string.dialog_title_disabled)
            .setMessage(R.string.dialog_text)
            .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        dismiss();
                        Intent i = new Intent(Settings.ACTION_WIRELESS_SETTINGS);
                        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                        startActivity(i);
                    }
            }).setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        getActivity().finish();
                    }
            }).create();
    //a.setCanceledOnTouchOutside(false);
    return a;
}

Si el usuario hace clic en Sí, cierra el diálogo y abre la actividad de configuración inalámbrica. O si el usuario hace clic en Cancelar, simplemente cierra toda mi actividad, pero en Jelly Bean, cada vez que hago clic en Sí, abre la Configuración, pero la aplicación se cierra con el siguiente error:

08-05 20:24:22.584: E/AndroidRuntime(2579): java.lang.IllegalStateException: Failure saving state: active SettingsDialogFragment{425dd550} has cleared index: -1
08-05 20:24:22.584: E/AndroidRuntime(2579):     at android.app.FragmentManagerImpl.saveAllState(FragmentManager.java:1653)

Hay un registro adicional que muestra el estado guardado de cada fragmento que estaba en mi diseño y el número 2 que se suponía que era elSettingsDialogFragment es solo unnull:

08-05 20:24:22.576: E/FragmentManager(2579):     #2: null

Intenté no descartar el diálogo pero se estrelló de la misma manera.

Realmente no estoy seguro de lo que está pasando aquí ... ¿Alguna idea?

EDITAR:

El código de actividad (es una actividad normal porque la aplicación se enfoca en ICS y más):

private void showDialog() {
    SettingsDialogFragment diag = (SettingsDialogFragment) getFragmentManager().findFragmentByTag(DIALOG_TAG);
    if (diag == null) {
        diag = new SettingsDialogFragment();
        diag.show(getFragmentManager(), DIALOG_TAG);
    } else {
        if (!diag.isVisible())
            diag.show(getFragmentManager(), DIALOG_TAG);
    }
}

private void dismissDialog() {
    SettingsDialogFragment diag = (SettingsDialogFragment) getFragmentManager().findFragmentByTag(DIALOG_TAG);
    if (diag != null)
        diag.dismiss();
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta