Diff between 8bfd6b663ebbca2cd56998d2245945a0fa24549a and 35c7dd410f7d09c9d69f86f8d70a786c0f7f25ce

Changed Files

File Additions Deletions Status
audio/telephony-maemo6.c +7 -3 modified

Full Patch

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
@@ -1354,12 +1354,16 @@ static void call_set_status(struct csd_call *call, dbus_uint32_t status)
 		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);