diff --git a/profiles/audio/transport.c b/profiles/audio/transport.c
index c5ae3a7..1535151 100644
--- a/profiles/audio/transport.c
+++ b/profiles/audio/transport.c
asha_transport_sync_state(transport, asha_dev);
}
+static gboolean asha_transport_suspend_cb(void *user_data)
+{
+ asha_transport_state_cb(-1, user_data);
+
+ return FALSE;
+}
+
static guint transport_asha_resume(struct media_transport *transport,
struct media_owner *owner)
{
if (owner) {
ret = bt_asha_device_stop(asha_dev);
asha_transport_sync_state(transport, asha_dev);
- asha_transport_state_cb(-1, owner);
+ g_idle_add(asha_transport_suspend_cb, owner);
} else {
ret = bt_asha_device_stop(asha_dev);
/* We won't have a callback to set the final state */