diff --git a/contrib/msvc/libdivecomputer.vcxproj b/contrib/msvc/libdivecomputer.vcxproj
index 7f1335c..704ef8b 100644
--- a/contrib/msvc/libdivecomputer.vcxproj
+++ b/contrib/msvc/libdivecomputer.vcxproj
@@ -331,7 +331,6 @@
-
diff --git a/include/libdivecomputer/descriptor.h b/include/libdivecomputer/descriptor.h
index a2b4495..ec6a6c6 100644
--- a/include/libdivecomputer/descriptor.h
+++ b/include/libdivecomputer/descriptor.h
@@ -52,6 +52,9 @@ dc_descriptor_get_model (dc_descriptor_t *descriptor);
unsigned int
dc_descriptor_get_transports (dc_descriptor_t *descriptor);
+int
+dc_descriptor_filter (dc_descriptor_t *descriptor, dc_transport_t transport, const void *userdata);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/src/Makefile.am b/src/Makefile.am
index de59dd6..be3f2e3 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -16,7 +16,7 @@ endif
libdivecomputer_la_SOURCES = \
version.c \
- descriptor-private.h descriptor.c \
+ descriptor.c \
iostream-private.h iostream.c \
iterator-private.h iterator.c \
common-private.h common.c \
diff --git a/src/bluetooth.c b/src/bluetooth.c
index cc143b7..309953c 100644
--- a/src/bluetooth.c
+++ b/src/bluetooth.c
@@ -51,7 +51,6 @@
#include "context-private.h"
#include "iostream-private.h"
#include "iterator-private.h"
-#include "descriptor-private.h"
#include "platform.h"
#ifdef _WIN32
diff --git a/src/descriptor-private.h b/src/descriptor-private.h
deleted file mode 100644
index 77bdbb6..0000000
--- a/src/descriptor-private.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * libdivecomputer
- *
- * Copyright (C) 2017 Jef Driesen
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301 USA
- */
-
-#ifndef DC_DESCRIPTOR_PRIVATE_H
-#define DC_DESCRIPTOR_PRIVATE_H
-
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-int
-dc_descriptor_filter (dc_descriptor_t *descriptor, dc_transport_t transport, const void *userdata);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* DC_DESCRIPTOR_PRIVATE_H */
diff --git a/src/descriptor.c b/src/descriptor.c
index 79c2d7c..77d55f6 100644
--- a/src/descriptor.c
+++ b/src/descriptor.c
@@ -23,10 +23,10 @@
#include
#include
+#include
#include
#include
-#include "descriptor-private.h"
#include "iterator-private.h"
#include "platform.h"
diff --git a/src/irda.c b/src/irda.c
index 6bd927c..dd5397b 100644
--- a/src/irda.c
+++ b/src/irda.c
@@ -47,7 +47,6 @@
#include "context-private.h"
#include "iostream-private.h"
#include "iterator-private.h"
-#include "descriptor-private.h"
#include "array.h"
#include "platform.h"
diff --git a/src/libdivecomputer.symbols b/src/libdivecomputer.symbols
index 477f1ec..c829852 100644
--- a/src/libdivecomputer.symbols
+++ b/src/libdivecomputer.symbols
@@ -34,6 +34,7 @@ dc_descriptor_get_product
dc_descriptor_get_type
dc_descriptor_get_model
dc_descriptor_get_transports
+dc_descriptor_filter
dc_iostream_get_transport
dc_iostream_set_timeout
diff --git a/src/serial_posix.c b/src/serial_posix.c
index 51b1037..792a1c9 100644
--- a/src/serial_posix.c
+++ b/src/serial_posix.c
@@ -57,7 +57,6 @@
#include "context-private.h"
#include "iostream-private.h"
#include "iterator-private.h"
-#include "descriptor-private.h"
#include "platform.h"
#include "timer.h"
diff --git a/src/serial_win32.c b/src/serial_win32.c
index 30fe0e9..e506cbd 100644
--- a/src/serial_win32.c
+++ b/src/serial_win32.c
@@ -31,7 +31,6 @@
#include "context-private.h"
#include "iostream-private.h"
#include "iterator-private.h"
-#include "descriptor-private.h"
#include "platform.h"
static dc_status_t dc_serial_iterator_next (dc_iterator_t *iterator, void *item);
diff --git a/src/usb.c b/src/usb.c
index 80083f6..d7074cb 100644
--- a/src/usb.c
+++ b/src/usb.c
@@ -39,7 +39,6 @@
#include "common-private.h"
#include "context-private.h"
#include "iostream-private.h"
-#include "descriptor-private.h"
#include "iterator-private.h"
#include "platform.h"
#include "array.h"
diff --git a/src/usbhid.c b/src/usbhid.c
index 04e35d9..b7818e0 100644
--- a/src/usbhid.c
+++ b/src/usbhid.c
@@ -57,7 +57,6 @@
#include "common-private.h"
#include "context-private.h"
#include "iostream-private.h"
-#include "descriptor-private.h"
#include "iterator-private.h"
#include "platform.h"