diff --git a/audio/telephony-maemo6.c b/audio/telephony-maemo6.c
index 10967fb..dd75422 100644
--- a/audio/telephony-maemo6.c
+++ b/audio/telephony-maemo6.c
break;
case CSD_CALL_STATUS_TERMINATED:
if (call->on_hold &&
- !find_call_with_status(CSD_CALL_STATUS_HOLD))
+ !find_call_with_status(CSD_CALL_STATUS_HOLD)) {
telephony_update_indicator(maemo_indicators,
"callheld",
EV_CALLHELD_NONE);
- else if (callheld == EV_CALLHELD_MULTIPLE &&
- find_call_with_status(CSD_CALL_STATUS_HOLD))
+ return;
+ }
+
+ if (callheld == EV_CALLHELD_MULTIPLE &&
+ find_call_with_status(CSD_CALL_STATUS_HOLD) &&
+ !find_call_with_status(CSD_CALL_STATUS_ACTIVE))
telephony_update_indicator(maemo_indicators,
"callheld",
EV_CALLHELD_ON_HOLD);