diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,7 @@
 # Revision history for bindings-libpci
+## 0.4.0.0 -- 2020-12-14
+* Min-Version bind pci_find_cap_nr() to libpci-3.6.3
+* Min-Version bind pci_get_string_property() to libpci-3.6.0
 
 ## 0.3.0.0 -- 2020-12-13
 * Fix libpci flags
diff --git a/bindings-libpci.cabal b/bindings-libpci.cabal
--- a/bindings-libpci.cabal
+++ b/bindings-libpci.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.4
 name:               bindings-libpci
-version:            0.3.0.0
+version:            0.4.0.0
 synopsis:           Low level bindings to libpci
 description:        Low level bindings to libpci:
                     .
diff --git a/src/Bindings/Libpci/Pci.hsc b/src/Bindings/Libpci/Pci.hsc
--- a/src/Bindings/Libpci/Pci.hsc
+++ b/src/Bindings/Libpci/Pci.hsc
@@ -377,7 +377,10 @@
 --
 -- XXX: flags and the result should be unsigned, but we do not want to break the ABI.
 #ccall pci_fill_info , Ptr <struct pci_dev> -> CInt -> IO CInt
+
+#ifdef MIN_VERSION_LIBPCI_3_6_0
 #ccall pci_get_string_property , Ptr <struct pci_dev> -> CUInt -> IO CString
+#endif
 
 #num PCI_FILL_IDENT
 #num PCI_FILL_IRQ
@@ -429,7 +432,10 @@
 #num PCI_CAP_EXTENDED
 
 #ccall pci_find_cap , Ptr <struct pci_dev> -> CUInt -> CUInt -> IO (Ptr <struct pci_cap>)
+
+#ifdef MIN_VERSION_LIBPCI_3_6_3
 #ccall pci_find_cap_nr , Ptr <struct pci_dev> -> CUInt -> CUInt -> Ptr CUInt -> IO (Ptr <struct pci_cap>)
+#endif
 {- struct pci_filter {
     int domain, bus, slot, func;
     int vendor, device, device_class;
