diff -r 56cd8111b7f7 -r 41300fa6a67c src/gui/kernel/qactiongroup.cpp --- a/src/gui/kernel/qactiongroup.cpp Tue Jan 26 12:42:25 2010 +0200 +++ b/src/gui/kernel/qactiongroup.cpp Tue Feb 02 00:43:10 2010 +0200 @@ -72,10 +72,16 @@ Q_Q(QActionGroup); QAction *action = qobject_cast(q->sender()); Q_ASSERT_X(action != 0, "QWidgetGroup::_q_actionChanged", "internal error"); - if(exclusive && action->isChecked() && action != current) { - if(current) - current->setChecked(false); - current = action; + if(exclusive) { + if (action->isChecked()) { + if (action != current) { + if(current) + current->setChecked(false); + current = action; + } + } else if (action == current) { + current = 0; + } } }