diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c
index 644a845..a3ef4b6 100644
--- a/sys/v4l2/gstv4l2bufferpool.c
+++ b/sys/v4l2/gstv4l2bufferpool.c
@@ -285,20 +285,23 @@ gst_v4l2_buffer_pool_import_userptr (GstV4l2BufferPool * pool,
     if (!gst_v4l2_allocator_import_userptr (pool->vallocator, group,
             data->map.size, 1, ptr, size))
       goto import_failed;
   }
 
   data->buffer = gst_buffer_ref (src);
 
   gst_mini_object_set_qdata (GST_MINI_OBJECT (dest), GST_V4L2_IMPORT_QUARK,
       data, (GDestroyNotify) _unmap_userptr_frame);
 
+  gst_buffer_copy_into (dest, src,
+      GST_BUFFER_COPY_FLAGS | GST_BUFFER_COPY_TIMESTAMPS, 0, -1);
+
   return ret;
 
 not_our_buffer:
   {
     GST_ERROR_OBJECT (pool, "destination buffer invalid or not from our pool");
     return GST_FLOW_ERROR;
   }
 invalid_buffer:
   {
     GST_ERROR_OBJECT (pool, "could not map buffer");