diff --git a/PKGBUILD b/PKGBUILD
index 80ba143..92efc9e 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -8,19 +8,27 @@ url='https://github.com/kpcyrd/libredefender'
 arch=('x86_64')
 license=('GPL2')
 depends=('libclamav.so' 'hicolor-icon-theme')
-makedepends=('cargo' 'clang')
+makedepends=('cargo' 'clang' 'git')
 source=(https://github.com/kpcyrd/${pkgname}/archive/v${pkgver}/${pkgname}-${pkgver}.tar.gz
         https://github.com/kpcyrd/${pkgname}/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.gz.asc
-        clamav-1.0.patch)
+        libredefender-0.6.0-clamav-1.2.patch
+        git+https://github.com/zaddach/clamav-rs.git#commit=a2d4cfaed17fa97a7770f575f9a6571049f398d0
+        clamav-rs-0.5.5-clamav-1.0.patch
+        clamav-rs-0.5.5-clamav-1.2.patch)
 b2sums=('fba45c42842220c0b43a06c56fbecbaa093819715822a9e673570c21b21a2cd6b9cba72711d76758bbbadb542b4a8d356f1107020593d74b12a7ad581c3ed562'
         'SKIP'
-        'bc44726d294e500b032da217d10cd23aca2dccbeec124e3696558a5d331c182ab3bc431d74f3dcdbea1686c0cbec32ee8d9240e0de22fdf5be2c31bd116afdee')
+        'ff0d24a264eef07b20b9f18bbebc703b36d69012740a0ab7ec911da7fc380c9cc8ccf7f2cbff40ebe6f58b55a1f4f280c2b263507a13fe3b41d02a8334a5c753'
+        'SKIP'
+        'e835d417b58bd6e94367024c34acca6615ebaf7d7d1943af9211e133baa9dce52f05e2f82f18a1bcc2805e5db6a77b07812be552c87c7f4b34aae55e11aed34f'
+        '4733d7dc9b4d0753e62d7effa26465516a245f59bbdfb3b7fd4e117b4545a18b7af135f1c502dcf96838aac9b4caa4e3e5f1218c641b5cb6d6bfe66328dab441')
 
 validpgpkeys=("64B13F7117D6E07D661BBCE0FE763A64F5E54FD6")
 
 prepare() {
+  patch -Np1 -i ../clamav-rs-0.5.5-clamav-1.0.patch -d clamav-rs
+  patch -Np1 -i ../clamav-rs-0.5.5-clamav-1.2.patch -d clamav-rs
   cd "${pkgname}-${pkgver}"
-  patch -i ../clamav-1.0.patch
+  patch -i ../libredefender-0.6.0-clamav-1.2.patch
   cargo fetch --locked --target "$CARCH-unknown-linux-gnu"
 }
 
diff --git a/clamav-rs-0.5.5-clamav-1.0.patch b/clamav-rs-0.5.5-clamav-1.0.patch
new file mode 100644
index 0000000..6017f67
--- /dev/null
+++ b/clamav-rs-0.5.5-clamav-1.0.patch
@@ -0,0 +1,45 @@
+From 93b5ddc41d5b62b129c6c40bf025a8779e5a3e70 Mon Sep 17 00:00:00 2001
+From: kpcyrd <git@rxv.cc>
+Date: Mon, 23 Jan 2023 10:51:51 +0100
+Subject: [PATCH] Fix compile on clamav 1.0
+
+---
+ src/error.rs | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/error.rs b/src/error.rs
+index 19befd0..4b5844e 100644
+--- a/src/error.rs
++++ b/src/error.rs
+@@ -8,13 +8,13 @@ use clamav_sys::cl_error_t;
+ /// An error indicating a clam failure.
+ #[derive(Clone, PartialEq, Eq)]
+ pub struct ClamError {
+-    code: i32,
++    code: cl_error_t,
+ }
+ 
+ impl ClamError {
+     pub fn new(native_err: cl_error_t) -> Self {
+         ClamError {
+-            code: native_err as i32,
++            code: native_err,
+         }
+     }
+ 
+@@ -30,13 +30,13 @@ impl ClamError {
+     }
+ 
+     pub fn code(&self) -> i32 {
+-        self.code
++        self.code as i32
+     }
+ }
+ 
+ impl fmt::Display for ClamError {
+     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+-        write!(f, "cl_error {}: {}", self.code, self.string_error())
++        write!(f, "cl_error {}: {}", self.code as i32, self.string_error())
+     }
+ }
+ 
diff --git a/clamav-rs-0.5.5-clamav-1.2.patch b/clamav-rs-0.5.5-clamav-1.2.patch
new file mode 100644
index 0000000..3cf4f74
--- /dev/null
+++ b/clamav-rs-0.5.5-clamav-1.2.patch
@@ -0,0 +1,12 @@
+diff --git a/src/engine.rs b/src/engine.rs
+index a4ca6cf..777fc06 100644
+--- a/src/engine.rs
++++ b/src/engine.rs
+@@ -470,6 +470,7 @@ fn get_field_type(field: cl_engine_field) -> EngineValueType {
+         cl_engine_field::CL_ENGINE_MAX_ZIPTYPERCG => EngineValueType::U64,
+         cl_engine_field::CL_ENGINE_FORCETODISK => EngineValueType::U32,
+         cl_engine_field::CL_ENGINE_DISABLE_CACHE => EngineValueType::U32,
++        cl_engine_field::CL_ENGINE_CACHE_SIZE => EngineValueType::U32,
+         cl_engine_field::CL_ENGINE_DISABLE_PE_STATS => EngineValueType::U32,
+         cl_engine_field::CL_ENGINE_STATS_TIMEOUT => EngineValueType::U32,
+         cl_engine_field::CL_ENGINE_MAX_PARTITIONS => EngineValueType::U32,
diff --git a/libredefender-0.6.0-clamav-1.2.patch b/libredefender-0.6.0-clamav-1.2.patch
new file mode 100644
index 0000000..1bf0e8f
--- /dev/null
+++ b/libredefender-0.6.0-clamav-1.2.patch
@@ -0,0 +1,27 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index e83da71..5df1e3f 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -282,8 +282,7 @@ dependencies = [
+ [[package]]
+ name = "clamav-rs"
+ version = "0.5.5"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2270a8023f99eaeaa8ce6b240b55e0aec0c8ea10edadec337018ca0174c22430"
++path = "../clamav-rs"
+ dependencies = [
+  "bitflags",
+  "clamav-rs-bindings",
+diff --git a/Cargo.toml b/Cargo.toml
+index ea09a3b..21f39dc 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -17,7 +17,7 @@ atoi = "1"
+ battery = "0.7"
+ chrono = { version = "0.4.19", features = ["serde"] }
+ chrono-humanize = "0.2.1"
+-clamav-rs = "0.5.3"
++clamav-rs = { path = "../clamav-rs" }
+ colored = "2.0.0"
+ config = { version = "0.13", default-features = false, features = ["toml"] }
+ crossbeam-channel = "0.5.1"