diff --git a/libs/gst/net/gstptpclock.c b/libs/gst/net/gstptpclock.c
index 8258b14..2f66989 100644
--- a/libs/gst/net/gstptpclock.c
+++ b/libs/gst/net/gstptpclock.c
@@ -296,8 +296,10 @@ typedef struct
 static void
 ptp_pending_sync_free (PtpPendingSync * sync)
 {
-  if (sync->timeout_source)
+  if (sync->timeout_source) {
     g_source_destroy (sync->timeout_source);
+    g_source_unref(sync->timeout_source);
+  }
   g_free (sync);
 }
 
