diff --git a/plugins/altair/mm-broadband-modem-altair-lte.c b/plugins/altair/mm-broadband-modem-altair-lte.c
index d58b6839a9bf65aee34ceb4ba8dae6e9ed556706..53d516f8af7eed32b46a86a4b674e5261eadb644 100644
--- a/plugins/altair/mm-broadband-modem-altair-lte.c
+++ b/plugins/altair/mm-broadband-modem-altair-lte.c
@@ -684,7 +684,7 @@ altair_sim_refresh_timer_expired (MMBroadbandModemAltairLte *self)
         self);
     self->priv->sim_refresh_timer_id = 0;
 
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/plugins/cinterion/mm-broadband-modem-cinterion.c b/plugins/cinterion/mm-broadband-modem-cinterion.c
index 0135c8d9cd8ff6bda64db1d731f8d1726b339dd6..f0fa630f8b11f053ec5e9fc212a524af31e9c859 100644
--- a/plugins/cinterion/mm-broadband-modem-cinterion.c
+++ b/plugins/cinterion/mm-broadband-modem-cinterion.c
@@ -553,7 +553,7 @@ power_off_timeout_cb (PowerOffContext *ctx)
                                      "Power off operation timed out");
     power_off_context_complete_and_free (ctx);
 
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
@@ -1588,7 +1588,7 @@ simstatus_timeout_cb (AfterSimUnlockContext *ctx)
 {
     ctx->timeout_id = 0;
     after_sim_unlock_context_step (ctx);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/plugins/huawei/mm-broadband-bearer-huawei.c b/plugins/huawei/mm-broadband-bearer-huawei.c
index 4af5aa4d8f7b0da58e11b66bc2e70ee8c5d9fe33..6c64d4d0e32ff52dc8fc9ae94fffb0ba38b4d7d2 100644
--- a/plugins/huawei/mm-broadband-bearer-huawei.c
+++ b/plugins/huawei/mm-broadband-bearer-huawei.c
@@ -126,7 +126,7 @@ connect_retry_ndisstatqry_check_cb (MMBroadbandBearerHuawei *self)
     /* Retry same step */
     connect_3gpp_context_step (ctx);
 
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
@@ -505,7 +505,7 @@ disconnect_retry_ndisstatqry_check_cb (MMBroadbandBearerHuawei *self)
 
     /* Retry same step */
     disconnect_3gpp_context_step (ctx);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
@@ -705,7 +705,7 @@ network_disconnect_3gpp_delayed (MMBroadbandBearerHuawei *self)
     self->priv->network_disconnect_pending_id = 0;
     mm_base_bearer_report_connection_status (MM_BASE_BEARER (self),
                                              MM_BEARER_CONNECTION_STATUS_DISCONNECTED);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/plugins/huawei/mm-broadband-modem-huawei.c b/plugins/huawei/mm-broadband-modem-huawei.c
index 70d157c86bdb48956e5a07724ee3386961c48595..5a3187b544250e86c4d310b6dc6466a1ee4bde79 100644
--- a/plugins/huawei/mm-broadband-modem-huawei.c
+++ b/plugins/huawei/mm-broadband-modem-huawei.c
@@ -712,7 +712,7 @@ after_sim_unlock_wait_cb (GSimpleAsyncResult *result)
 {
     g_simple_async_result_complete (result);
     g_object_unref (result);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/plugins/huawei/mm-plugin-huawei.c b/plugins/huawei/mm-plugin-huawei.c
index 22c03de295dbce423341f4c3832cea53c001351e..85562836e85b5a0741f8e61076144c010b33cc58 100644
--- a/plugins/huawei/mm-plugin-huawei.c
+++ b/plugins/huawei/mm-plugin-huawei.c
@@ -328,7 +328,7 @@ first_interface_missing_timeout_cb (MMDevice *device)
 
     /* Reload the timeout, just in case we end up not having the next interface to probe...
      * which is anyway very unlikely as we got it by looking at the real probe list, but anyway... */
-    return TRUE;
+    return G_SOURCE_CONTINUE;
 }
 
 static void
diff --git a/plugins/icera/mm-broadband-bearer-icera.c b/plugins/icera/mm-broadband-bearer-icera.c
index c4a40c22aa14e52486a6242287c10e42c33899a2..95e5722d74ad7a3e71bad800665146203c8ad21d 100644
--- a/plugins/icera/mm-broadband-bearer-icera.c
+++ b/plugins/icera/mm-broadband-bearer-icera.c
@@ -288,7 +288,7 @@ disconnect_3gpp_timed_out_cb (MMBroadbandBearerIcera *self)
                                      "Disconnection attempt timed out");
 
     disconnect_3gpp_context_complete_and_free (ctx);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
@@ -547,7 +547,7 @@ connect_timed_out_cb (MMBroadbandBearerIcera *self)
     /* It's probably pointless to try to reset this here, but anyway... */
     connect_reset (ctx);
 
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
@@ -795,7 +795,7 @@ static gboolean
 retry_authentication_cb (Dial3gppContext *ctx)
 {
     authenticate (ctx);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/plugins/mbm/mm-broadband-bearer-mbm.c b/plugins/mbm/mm-broadband-bearer-mbm.c
index eb4ebce1d3b12bab97bcf287d25c956a28611c7c..561fcca25d21ab5ff372b1b4b668a6683a044dfb 100644
--- a/plugins/mbm/mm-broadband-bearer-mbm.c
+++ b/plugins/mbm/mm-broadband-bearer-mbm.c
@@ -272,7 +272,7 @@ poll_timeout_cb (MMBroadbandBearerMbm *self)
                                          MM_MOBILE_EQUIPMENT_ERROR_NETWORK_TIMEOUT,
                                          "Connection attempt timed out");
         dial_3gpp_context_complete_and_free (ctx);
-        return FALSE;
+        return G_SOURCE_REMOVE;
     }
 
     ctx->poll_count++;
@@ -286,7 +286,7 @@ poll_timeout_cb (MMBroadbandBearerMbm *self)
                                    (GAsyncReadyCallback)poll_ready,
                                    g_object_ref (ctx->self)); /* we pass the bearer object! */
     self->priv->connect_pending_id = 0;
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/plugins/mbm/mm-broadband-modem-mbm.c b/plugins/mbm/mm-broadband-modem-mbm.c
index 5627dee834ee3e1a6fadd73143d1073b1af8d38b..fa291d65d950b7f3c5374a275ebb8cbf9c073b05 100644
--- a/plugins/mbm/mm-broadband-modem-mbm.c
+++ b/plugins/mbm/mm-broadband-modem-mbm.c
@@ -181,7 +181,7 @@ after_sim_unlock_wait_cb (GSimpleAsyncResult *result)
 {
     g_simple_async_result_complete (result);
     g_object_unref (result);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/plugins/mbm/mm-sim-mbm.c b/plugins/mbm/mm-sim-mbm.c
index a1e1a76eee2a8183c766bc24824e7a02eb5dbb98..6949129f21bd793870daa7b23e0c6519b05b5b09 100644
--- a/plugins/mbm/mm-sim-mbm.c
+++ b/plugins/mbm/mm-sim-mbm.c
@@ -90,7 +90,7 @@ cpin_query_cb (SendPinPukContext *ctx)
                               FALSE,
                               (GAsyncReadyCallback)cpin_query_ready,
                               ctx);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/plugins/mtk/mm-broadband-modem-mtk.c b/plugins/mtk/mm-broadband-modem-mtk.c
index df9004631713b8741ca5882f5746f635a0bf0805..f652a65bdbc852da12ed57ce428cf41c38d63a1a 100644
--- a/plugins/mtk/mm-broadband-modem-mtk.c
+++ b/plugins/mtk/mm-broadband-modem-mtk.c
@@ -168,7 +168,7 @@ after_sim_unlock_wait_cb (GSimpleAsyncResult *result)
 {
     g_simple_async_result_complete (result);
     g_object_unref (result);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/plugins/novatel/mm-broadband-bearer-novatel-lte.c b/plugins/novatel/mm-broadband-bearer-novatel-lte.c
index bd66ee1ffc392977d0f7ebc2606c9d87d8bbab94..461ed61702a801fe4644ce7ad10e4a0033ae8b20 100644
--- a/plugins/novatel/mm-broadband-bearer-novatel-lte.c
+++ b/plugins/novatel/mm-broadband-bearer-novatel-lte.c
@@ -161,7 +161,7 @@ poll_connection (MMBroadbandBearerNovatelLte *bearer)
         bearer);
     g_object_unref (modem);
 
-    return TRUE;
+    return G_SOURCE_CONTINUE;
 }
 
 static void
@@ -248,7 +248,7 @@ connect_3gpp_qmistatus (DetailedConnectContext *ctx)
         (GAsyncReadyCallback)connect_3gpp_qmistatus_ready, /* callback */
         ctx); /* user_data */
 
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
@@ -463,7 +463,7 @@ disconnect_3gpp_qmistatus (DetailedDisconnectContext *ctx)
         NULL, /* cancellable */
         (GAsyncReadyCallback)disconnect_3gpp_status_ready,
         ctx); /* user_data */
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 
diff --git a/plugins/novatel/mm-broadband-modem-novatel-lte.c b/plugins/novatel/mm-broadband-modem-novatel-lte.c
index 499aafe7a0958e302fe078a014e36145c3b497d6..8fab1521abd754be02bf55accf78e2352cbe37ea 100644
--- a/plugins/novatel/mm-broadband-modem-novatel-lte.c
+++ b/plugins/novatel/mm-broadband-modem-novatel-lte.c
@@ -164,7 +164,7 @@ after_sim_unlock_wait_cb (GSimpleAsyncResult *result)
 {
     g_simple_async_result_complete (result);
     g_object_unref (result);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/plugins/novatel/mm-common-novatel.c b/plugins/novatel/mm-common-novatel.c
index 5305d1245761818e445efd1150e6382e824a41b5..4c39c7c732085ec80a045551cbd94622d72e6015 100644
--- a/plugins/novatel/mm-common-novatel.c
+++ b/plugins/novatel/mm-common-novatel.c
@@ -84,7 +84,7 @@ static gboolean
 custom_init_wait_cb (CustomInitContext *ctx)
 {
     custom_init_step (ctx);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/plugins/option/mm-broadband-bearer-hso.c b/plugins/option/mm-broadband-bearer-hso.c
index f1c0445ee4d1c7705a19f0fc41fd1fe29e0fcda3..275dff83037e15958c01e3daeb62b33bbf56aa5e 100644
--- a/plugins/option/mm-broadband-bearer-hso.c
+++ b/plugins/option/mm-broadband-bearer-hso.c
@@ -438,7 +438,7 @@ connect_timed_out_cb (MMBroadbandBearerHso *self)
     /* It's probably pointless to try to reset this here, but anyway... */
     connect_reset (ctx);
 
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/plugins/option/mm-broadband-modem-option.c b/plugins/option/mm-broadband-modem-option.c
index cf02ba307db68acc02c17931e0a847b6b6a7cb47..583af5f919177824489d00cb3c661ca00a8c3d50 100644
--- a/plugins/option/mm-broadband-modem-option.c
+++ b/plugins/option/mm-broadband-modem-option.c
@@ -675,7 +675,7 @@ after_power_up_wait_cb (GSimpleAsyncResult *result)
     option->priv->after_power_up_wait_id = 0;
     g_object_unref (option);
 
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/plugins/pantech/mm-broadband-modem-pantech.c b/plugins/pantech/mm-broadband-modem-pantech.c
index 65464569a6634aba34251de3852c1fbd77254af0..878806d7640da9ba4bc383bae027f0761a209d4e 100644
--- a/plugins/pantech/mm-broadband-modem-pantech.c
+++ b/plugins/pantech/mm-broadband-modem-pantech.c
@@ -122,7 +122,7 @@ after_sim_unlock_wait_cb (GSimpleAsyncResult *result)
 {
     g_simple_async_result_complete (result);
     g_object_unref (result);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/plugins/sierra/mm-broadband-modem-sierra.c b/plugins/sierra/mm-broadband-modem-sierra.c
index c03074585dbcce2830f9ec4b2d24e7e0df50685a..8616f1c959b1ee9ca3595cfa695eb8da76700e2e 100644
--- a/plugins/sierra/mm-broadband-modem-sierra.c
+++ b/plugins/sierra/mm-broadband-modem-sierra.c
@@ -937,7 +937,7 @@ after_sim_unlock_wait_cb (GSimpleAsyncResult *result)
 {
     g_simple_async_result_complete (result);
     g_object_unref (result);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/plugins/sierra/mm-common-sierra.c b/plugins/sierra/mm-common-sierra.c
index e71209322f2cbb60870afd3856c8dd20fb00ae1c..fe569571215ff4d1f3da55b1645162dab07e1fa0 100644
--- a/plugins/sierra/mm-common-sierra.c
+++ b/plugins/sierra/mm-common-sierra.c
@@ -257,7 +257,7 @@ sierra_power_up_wait_cb (GSimpleAsyncResult *result)
     g_simple_async_result_set_op_res_gboolean (result, TRUE);
     g_simple_async_result_complete (result);
     g_object_unref (result);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/plugins/wavecom/mm-broadband-modem-wavecom.c b/plugins/wavecom/mm-broadband-modem-wavecom.c
index fd335570584047ce70370a0a91db6224f7bc3ed0..47c6b4f040a01a957d9e2c61887b0b717a0a0d19 100644
--- a/plugins/wavecom/mm-broadband-modem-wavecom.c
+++ b/plugins/wavecom/mm-broadband-modem-wavecom.c
@@ -1220,7 +1220,7 @@ after_sim_unlock_wait_cb (GSimpleAsyncResult *result)
 {
     g_simple_async_result_complete (result);
     g_object_unref (result);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/plugins/zte/mm-broadband-modem-zte.c b/plugins/zte/mm-broadband-modem-zte.c
index 17658e003a60b104bd6edc4b43b974e49a710ee0..3ea59b5976d1c349e8a92791d0a966069e6fb606 100644
--- a/plugins/zte/mm-broadband-modem-zte.c
+++ b/plugins/zte/mm-broadband-modem-zte.c
@@ -150,7 +150,7 @@ cpms_timeout_cb (ModemAfterSimUnlockContext *ctx)
 {
     ctx->retries--;
     modem_after_sim_unlock_context_step (ctx);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/src/mm-base-bearer.c b/src/mm-base-bearer.c
index 1b1c7b311f9fc314a5fc541ab1804a888150104c..a49ea4345e9492ecd6bc514daec28201dfd56462 100644
--- a/src/mm-base-bearer.c
+++ b/src/mm-base-bearer.c
@@ -200,7 +200,7 @@ deferred_3gpp_unregistration_cb (MMBaseBearer *self)
 
     mm_dbg ("Forcing bearer disconnection, not registered in 3GPP network");
     mm_base_bearer_disconnect_force (self);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
@@ -282,7 +282,7 @@ deferred_cdma_unregistration_cb (MMBaseBearer *self)
 
     mm_dbg ("Forcing bearer disconnection, not registered in CDMA network");
     mm_base_bearer_disconnect_force (self);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/src/mm-base-manager.c b/src/mm-base-manager.c
index f11070f5329bfb3a3977e981def2ea9a9ffab9bb..57c3ca16e193c53da17e2c6c8e24c14d19c44167 100644
--- a/src/mm-base-manager.c
+++ b/src/mm-base-manager.c
@@ -453,7 +453,7 @@ start_device_added_idle (StartDeviceAdded *ctx)
     g_object_unref (ctx->self);
     g_object_unref (ctx->device);
     g_slice_free (StartDeviceAdded, ctx);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c
index 84ecf8d2eaa2d13dd6e40f404ace256feecf0848..3a56566cf819c6142d9dd45f968bee325e394afc 100644
--- a/src/mm-base-modem.c
+++ b/src/mm-base-modem.c
@@ -1357,7 +1357,7 @@ base_modem_invalid_idle (MMBaseModem *self)
      * cancelled */
     mm_base_modem_set_valid (self, FALSE);
     g_object_unref (self);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/src/mm-broadband-modem-mbim.c b/src/mm-broadband-modem-mbim.c
index 626d0d726a801d84e4b75e53a78f403e424504c8..6038094781f05be1cb2ddde257d94e45b708e374 100644
--- a/src/mm-broadband-modem-mbim.c
+++ b/src/mm-broadband-modem-mbim.c
@@ -682,7 +682,7 @@ wait_for_sim_ready (LoadUnlockRequiredContext *ctx)
                          (GAsyncReadyCallback)unlock_required_subscriber_ready_state_ready,
                          ctx);
     mbim_message_unref (message);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c
index 1b516c69b3aa8f13d3d174d681af41c204bc8f60..0dd88519c60b41727411df8e21c8a5f8f71a558e 100644
--- a/src/mm-broadband-modem-qmi.c
+++ b/src/mm-broadband-modem-qmi.c
@@ -5495,7 +5495,7 @@ static gboolean
 retry_msisdn_check_cb (CdmaActivationContext *ctx)
 {
     cdma_activation_context_step (ctx);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c
index 852664623421994330626cc994ee1d44d273c650..32a5eea27df8a8162ca706090f46d018a275394a 100644
--- a/src/mm-broadband-modem.c
+++ b/src/mm-broadband-modem.c
@@ -7666,7 +7666,7 @@ run_cdma_registration_checks_again (RegisterInCdmaNetworkContext *ctx)
         MM_IFACE_MODEM_CDMA (ctx->self),
         (GAsyncReadyCallback)run_cdma_registration_checks_ready,
         ctx);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
@@ -8304,7 +8304,7 @@ enabling_after_modem_init_timeout (EnablingStartedContext *ctx)
     ctx->self->priv->enabled_ports_ctx = ports_context_ref (ctx->ports);
     g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE);
     enabling_started_context_complete_and_free (ctx);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
@@ -8506,7 +8506,7 @@ schedule_initial_registration_checks_cb (MMBroadbandModem *self)
                                                      NULL);
     /* We got a full reference, so balance it out here */
     g_object_unref (self);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/src/mm-iface-modem-3gpp.c b/src/mm-iface-modem-3gpp.c
index 409c03f8b989f7f05dbd13bac4a48141da959cc9..baf743fb15f79e2ae2f2f14222abd728f7e94bec 100644
--- a/src/mm-iface-modem-3gpp.c
+++ b/src/mm-iface-modem-3gpp.c
@@ -233,7 +233,7 @@ run_registration_checks_again (RegisterInNetworkContext *ctx)
         ctx->self,
         (GAsyncReadyCallback)run_registration_checks_ready,
         ctx);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
@@ -1309,7 +1309,7 @@ periodic_registration_check (MMIfaceModem3gpp *self)
             (GAsyncReadyCallback)periodic_registration_checks_ready,
             NULL);
     }
-    return TRUE;
+    return G_SOURCE_CONTINUE;
 }
 
 static void
diff --git a/src/mm-iface-modem-cdma.c b/src/mm-iface-modem-cdma.c
index 67d360a107b57af2072d8fc5f4dd6f856baeaf76..771bffd710e5e8c83c75e005a6939f0907074843 100644
--- a/src/mm-iface-modem-cdma.c
+++ b/src/mm-iface-modem-cdma.c
@@ -1160,7 +1160,7 @@ periodic_registration_check (MMIfaceModemCdma *self)
             (GAsyncReadyCallback)periodic_registration_checks_ready,
             NULL);
     }
-    return TRUE;
+    return G_SOURCE_CONTINUE;
 }
 
 static void
diff --git a/src/mm-iface-modem-signal.c b/src/mm-iface-modem-signal.c
index d28c2ad94ebb8a3887b15494db057d1073676d4d..dbf115156d292780d29fdddae08546e8adaafb24 100644
--- a/src/mm-iface-modem-signal.c
+++ b/src/mm-iface-modem-signal.c
@@ -157,7 +157,7 @@ refresh_context_cb (MMIfaceModemSignal *self)
         NULL,
         (GAsyncReadyCallback)load_values_ready,
         NULL);
-    return TRUE;
+    return G_SOURCE_CONTINUE;
 }
 
 static void
diff --git a/src/mm-iface-modem-time.c b/src/mm-iface-modem-time.c
index 1a6ab213ac130cd0f9a969e8ef10723632d6c79c..91be855ebccd9f51d7e846867fb1365f8d4e3b94 100644
--- a/src/mm-iface-modem-time.c
+++ b/src/mm-iface-modem-time.c
@@ -270,7 +270,7 @@ timezone_poll_cb (UpdateNetworkTimezoneContext *ctx)
         (GAsyncReadyCallback)load_network_timezone_ready,
         ctx);
 
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/src/mm-iface-modem.c b/src/mm-iface-modem.c
index 0de50e225b65735503df14de7189106ab2f03760..87dace2f0486f70b3a16d1068328ba6824827830 100644
--- a/src/mm-iface-modem.c
+++ b/src/mm-iface-modem.c
@@ -131,7 +131,7 @@ state_changed_wait_expired (WaitForFinalStateContext *ctx)
         MM_CORE_ERROR_RETRY,
         "Too much time waiting to get to a final state");
     wait_for_final_state_context_complete_and_free (ctx);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
@@ -250,7 +250,7 @@ load_unlock_required_again (InternalLoadUnlockRequiredContext *ctx)
     ctx->pin_check_timeout_id = 0;
     /* Retry the step */
     internal_load_unlock_required_context_step (ctx);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
@@ -961,7 +961,7 @@ periodic_access_technologies_check (MMIfaceModem *self)
             NULL);
     }
 
-    return TRUE;
+    return G_SOURCE_CONTINUE;
 }
 
 void
@@ -1111,7 +1111,7 @@ expire_signal_quality (MMIfaceModem *self)
     /* Remove source id */
     ctx = g_object_get_qdata (G_OBJECT (self), signal_quality_update_context_quark);
     ctx->recent_timeout_source = 0;
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
@@ -1261,7 +1261,7 @@ periodic_signal_quality_check (MMIfaceModem *self)
             NULL);
     }
 
-    return TRUE;
+    return G_SOURCE_CONTINUE;
 }
 
 static void
@@ -2775,7 +2775,7 @@ restart_initialize_idle (MMIfaceModem *self)
     mm_base_modem_initialize (MM_BASE_MODEM (self),
                               (GAsyncReadyCallback) reinitialize_ready,
                               NULL);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
diff --git a/src/mm-plugin-manager.c b/src/mm-plugin-manager.c
index 567555baf4a7ad27edff50a24ff2c552044e16f0..734fbc124eaa369ffe56429f8f3d6d3e77afdc98 100644
--- a/src/mm-plugin-manager.c
+++ b/src/mm-plugin-manager.c
@@ -334,7 +334,7 @@ deferred_support_check_idle (PortProbeContext *port_probe_ctx)
 {
     port_probe_ctx->defer_id = 0;
     port_probe_context_step (port_probe_ctx);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
@@ -765,7 +765,7 @@ min_wait_timeout_cb (FindDeviceSupportContext *ctx)
     ctx->timeout_id = g_timeout_add (MIN_PROBING_TIME_MSECS - MIN_WAIT_TIME_MSECS,
                                      (GSourceFunc)min_probing_timeout_cb,
                                      ctx);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 void
diff --git a/src/mm-port-probe.c b/src/mm-port-probe.c
index 18adb38dfca1cabf7e7ee2d98bf5697e345f9c5a..e58d18b71e5266bd32a049f91447956353fda6b4 100644
--- a/src/mm-port-probe.c
+++ b/src/mm-port-probe.c
@@ -563,7 +563,7 @@ wdm_probe (MMPortProbe *self)
         /* All done now */
         port_probe_run_task_complete (task, TRUE, NULL);
 
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 /***************************************************************/
@@ -659,7 +659,7 @@ serial_probe_qcdm (MMPortProbe *self)
 
     /* If already cancelled, do nothing else */
     if (port_probe_run_is_cancelled (self))
-        return FALSE;
+        return G_SOURCE_REMOVE;
 
     mm_dbg ("(%s/%s) probing QCDM...",
             g_udev_device_get_subsystem (self->priv->port),
@@ -687,7 +687,7 @@ serial_probe_qcdm (MMPortProbe *self)
                          "(%s/%s) Couldn't create QCDM port",
                          g_udev_device_get_subsystem (self->priv->port),
                          g_udev_device_get_name (self->priv->port)));
-        return FALSE;
+        return G_SOURCE_REMOVE;
     }
 
     /* Try to open the port */
@@ -702,7 +702,7 @@ serial_probe_qcdm (MMPortProbe *self)
                          g_udev_device_get_name (self->priv->port),
                          (error ? error->message : "unknown error")));
         g_clear_error (&error);
-        return FALSE;
+        return G_SOURCE_REMOVE;
     }
 
     /* Build up the probe command; 0x7E is the frame marker, so put one at the
@@ -723,7 +723,7 @@ serial_probe_qcdm (MMPortProbe *self)
                          "(%s/%s) Failed to create QCDM versin info command",
                          g_udev_device_get_subsystem (self->priv->port),
                          g_udev_device_get_name (self->priv->port)));
-        return FALSE;
+        return G_SOURCE_REMOVE;
     }
     verinfo->len = len + 1;
 
@@ -740,7 +740,7 @@ serial_probe_qcdm (MMPortProbe *self)
                                  self);
     g_byte_array_unref (verinfo);
 
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 /***************************************************************/
@@ -955,7 +955,7 @@ serial_probe_at (MMPortProbe *self)
 
     /* If already cancelled, do nothing else */
     if (port_probe_run_is_cancelled (self))
-        return FALSE;
+        return G_SOURCE_REMOVE;
 
     /* If AT probing cancelled, end this partial probing */
     if (g_cancellable_is_cancelled (task->at_probing_cancellable)) {
@@ -964,7 +964,7 @@ serial_probe_at (MMPortProbe *self)
                 g_udev_device_get_name (self->priv->port));
         task->at_result_processor (self, NULL);
         serial_probe_schedule (self);
-        return FALSE;
+        return G_SOURCE_REMOVE;
     }
 
     mm_port_serial_at_command (
@@ -976,7 +976,7 @@ serial_probe_at (MMPortProbe *self)
         task->at_probing_cancellable,
         (GAsyncReadyCallback)serial_probe_at_parse_response,
         self);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static const MMPortProbeAtCommand at_probing[] = {
@@ -1162,7 +1162,7 @@ serial_open_at (MMPortProbe *self)
 
     /* If already cancelled, do nothing else */
     if (port_probe_run_is_cancelled (self))
-        return FALSE;
+        return G_SOURCE_REMOVE;
 
     /* Create AT serial port if not done before */
     if (!task->serial) {
@@ -1183,7 +1183,7 @@ serial_open_at (MMPortProbe *self)
                              "(%s/%s) couldn't create AT port",
                              g_udev_device_get_subsystem (self->priv->port),
                              g_udev_device_get_name (self->priv->port)));
-            return FALSE;
+            return G_SOURCE_REMOVE;
         }
 
         g_object_set (task->serial,
@@ -1236,7 +1236,7 @@ serial_open_at (MMPortProbe *self)
         }
 
         g_clear_error (&error);
-        return FALSE;
+        return G_SOURCE_REMOVE;
     }
 
     /* success, start probing */
@@ -1250,7 +1250,7 @@ serial_open_at (MMPortProbe *self)
                           TRUE,
                           (GAsyncReadyCallback)serial_flash_ready,
                           self);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 gboolean
diff --git a/src/mm-port-serial.c b/src/mm-port-serial.c
index 7dd2593343b7a248ad04e968f75ba00f4b3c3afa..d1baa1bdecbc94f04a688628905e3e907c8e8b83 100644
--- a/src/mm-port-serial.c
+++ b/src/mm-port-serial.c
@@ -762,7 +762,7 @@ port_serial_timed_out (gpointer data)
      * serial port */
     g_signal_emit (self, signals[TIMED_OUT], 0, self->priv->n_consecutive_timeouts);
 
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static void
@@ -795,7 +795,7 @@ port_serial_queue_process (gpointer data)
 
     ctx = (CommandContext *) g_queue_peek_head (self->priv->queue);
     if (!ctx)
-        return FALSE;
+        return G_SOURCE_REMOVE;
 
     if (ctx->allow_cached) {
         const GByteArray *cached;
@@ -814,7 +814,7 @@ port_serial_queue_process (gpointer data)
 
             g_byte_array_append (self->priv->response, cached->data, cached->len);
             port_serial_got_response (self, NULL);
-            return FALSE;
+            return G_SOURCE_REMOVE;
         }
 
         /* Cached reply wasn't found, keep on */
@@ -824,7 +824,7 @@ port_serial_queue_process (gpointer data)
     if (!port_serial_process_command (self, ctx, &error)) {
         port_serial_got_response (self, error);
         g_error_free (error);
-        return FALSE;
+        return G_SOURCE_REMOVE;
     }
 
     /* Schedule the next byte of the command to be sent */
@@ -833,7 +833,7 @@ port_serial_queue_process (gpointer data)
                                             (mm_port_get_subsys (MM_PORT (self)) == MM_PORT_SUBSYS_TTY ?
                                              self->priv->send_delay / 1000 :
                                              0));
-        return FALSE;
+        return G_SOURCE_REMOVE;
     }
 
     /* Setup the cancellable so that we can stop waiting for a response */
@@ -850,7 +850,7 @@ port_serial_queue_process (gpointer data)
                                  "Won't wait for the reply");
             port_serial_got_response (self, error);
             g_error_free (error);
-            return FALSE;
+            return G_SOURCE_REMOVE;
         }
     }
 
@@ -858,7 +858,7 @@ port_serial_queue_process (gpointer data)
     self->priv->timeout_id = g_timeout_add_seconds (ctx->timeout,
                                                     port_serial_timed_out,
                                                     self);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 static gboolean
@@ -1511,7 +1511,7 @@ reopen_do (MMPortSerial *self)
         g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE);
     reopen_context_complete_and_free (ctx);
 
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 void
@@ -1729,7 +1729,7 @@ flash_do (MMPortSerial *self)
         g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE);
     flash_context_complete_and_free (ctx);
 
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 void
diff --git a/test/mmtty.c b/test/mmtty.c
index 677203ad58c0688c5a39f905090528197fad9686..7947f814de2a0ae586026ec506f3ff8be06cec94 100644
--- a/test/mmtty.c
+++ b/test/mmtty.c
@@ -250,7 +250,7 @@ start_cb (void)
                           FALSE,
                           (GAsyncReadyCallback) flash_ready,
                           NULL);
-    return FALSE;
+    return G_SOURCE_REMOVE;
 }
 
 int main (int argc, char **argv)