diff --git a/plugins/usbdmx/AsyncUsbTransceiverBase.cpp b/plugins/usbdmx/AsyncUsbTransceiverBase.cpp index 78e338461f..e9a17955d4 100644 --- a/plugins/usbdmx/AsyncUsbTransceiverBase.cpp +++ b/plugins/usbdmx/AsyncUsbTransceiverBase.cpp @@ -57,8 +57,9 @@ AsyncUsbTransceiverBase::AsyncUsbTransceiverBase(LibUsbAdaptor *adaptor, AsyncUsbTransceiverBase::~AsyncUsbTransceiverBase() { CancelTransfer(); - m_adaptor->UnrefDevice(m_usb_device); + // Free the transfer first to avoid segfaults in libusb >= 1.0.25 m_adaptor->FreeTransfer(m_transfer); + m_adaptor->UnrefDevice(m_usb_device); } bool AsyncUsbTransceiverBase::Init() {