diff --git a/gst-libs/gst/audio/gstbaseaudiosrc.c b/gst-libs/gst/audio/gstbaseaudiosrc.c
index be74fee..eec7604 100644
--- a/gst-libs/gst/audio/gstbaseaudiosrc.c
+++ b/gst-libs/gst/audio/gstbaseaudiosrc.c
@@ -959,7 +959,7 @@ gst_base_audio_src_create (GstBaseSrc * bsrc, guint64 offset, guint length,
         timestamp = gst_clock_get_time (clock);
         base_time = GST_ELEMENT_CAST (src)->base_time;
 
-        if (timestamp > base_time)
+        if (GST_CLOCK_DIFF (timestamp, base_time) < 0)
           timestamp -= base_time;
         else
           timestamp = 0;
@@ -984,7 +984,7 @@ gst_base_audio_src_create (GstBaseSrc * bsrc, guint64 offset, guint length,
     /* we are not slaved, subtract base_time */
     base_time = GST_ELEMENT_CAST (src)->base_time;
 
-    if (timestamp > base_time) {
+    if (GST_CLOCK_DIFF (timestamp, base_time) < 0) {
       timestamp -= base_time;
       GST_LOG_OBJECT (src,
           "buffer timestamp %" GST_TIME_FORMAT " (base_time %" GST_TIME_FORMAT
