diff --git a/src/plugins/cinterion/mm-broadband-modem-cinterion.c b/src/plugins/cinterion/mm-broadband-modem-cinterion.c index 3d70cf509..fef34551b 100644 --- a/src/plugins/cinterion/mm-broadband-modem-cinterion.c +++ b/src/plugins/cinterion/mm-broadband-modem-cinterion.c @@ -1723,14 +1723,14 @@ ws46_query_ready (MMBaseModem *self, response = mm_base_modem_at_command_finish (self, res, &error); if (!response) { - g_task_return_error (task, error); + g_task_return_error(task, g_steal_pointer(&error)); g_object_unref (task); return; } if (!mm_cinterion_parse_ws46_response (response, &(result->allowed), &error)) { - g_task_return_error (task, error); + g_task_return_error(task, g_steal_pointer(&error)); g_object_unref (task); return; } diff --git a/src/plugins/cinterion/mm-modem-helpers-cinterion.c b/src/plugins/cinterion/mm-modem-helpers-cinterion.c index e30a471b4..19d11046e 100644 --- a/src/plugins/cinterion/mm-modem-helpers-cinterion.c +++ b/src/plugins/cinterion/mm-modem-helpers-cinterion.c @@ -2062,6 +2062,18 @@ mm_cinterion_parse_ws46_response (const gchar *response, /* E-UTRAN only */ *result = MM_MODEM_MODE_4G; break; + case 29: + /* GERAN and UTRAN */ + *result = MM_MODEM_MODE_2G | MM_MODEM_MODE_3G; + break; + case 30: + /* GERAN and E-UTRAN */ + *result = MM_MODEM_MODE_2G | MM_MODEM_MODE_4G; + break; + case 31: + /* UTRAN and E-UTRAN */ + *result = MM_MODEM_MODE_3G | MM_MODEM_MODE_4G; + break; default: g_set_error (error, MM_CORE_ERROR,