diff --git a/.gitignore b/.gitignore
index ce4016f4afc601da6682d568594ff979b49e5b54..b1904b76a24db1535a27320153af8adeff34ebff 100644
--- a/.gitignore
+++ b/.gitignore
@@ -67,6 +67,8 @@
 /src/tests/libknot/raw_data_queries.rc
 /src/tests/libknot/realdata/
 /src/tests/sample_conf.rc
+src/zscanner/descriptor.h
+src/zscanner/descriptor.c
 src/zscanner/test/cases/06-0_INCLUDE.in
 src/zscanner/test/cases/06-3_INCLUDE.in
 src/zscanner/test/cases/06-4_INCLUDE.in
diff --git a/src/zscanner/Makefile.am b/src/zscanner/Makefile.am
index d3f083236b616e035f7e3eb1a41572863193eb2e..35ee513079984eca5bf6d2baff25b1e6d2b8031c 100644
--- a/src/zscanner/Makefile.am
+++ b/src/zscanner/Makefile.am
@@ -18,6 +18,8 @@ CLEANFILES = descriptor.h descriptor.c
 nodist_libzscanner_la_SOURCES = descriptor.h descriptor.c
 
 descriptor.h: ../common/descriptor.h
+	cp $< $@
+
 descriptor.c: ../common/descriptor.c
 	cp $< $@
 
diff --git a/src/zscanner/file_loader.h b/src/zscanner/file_loader.h
index 9f03926d4ae5f4ee6264beffd2b8940cdd4fca57..5a840b1cf60c492d0c54489294c8ec005ceac395 100644
--- a/src/zscanner/file_loader.h
+++ b/src/zscanner/file_loader.h
@@ -30,7 +30,7 @@
 #include <stdint.h>			// uint32_t
 
 #include "zscanner/scanner.h"		// scanner_t
-#include "common/descriptor.h"		// KNOT_CLASS_IN
+#include "zscanner/descriptor.h"	// KNOT_CLASS_IN
 
 /*! \brief Settings block size in bytes. */
 #define SETTINGS_BUFFER_LENGTH		 1024
diff --git a/src/zscanner/scanner.c b/src/zscanner/scanner.c
index 8e3e208171050fc6b69ca7f60d85032400b64c95..ae8e9252bbd4ee5491b3f768ba995e092d1d4b12 100644
--- a/src/zscanner/scanner.c
+++ b/src/zscanner/scanner.c
@@ -33,7 +33,7 @@
 #include "zscanner/error.h"		// error codes
 #include "zscanner/file_loader.h"	// file_loader
 #include "zscanner/scanner_functions.h"	// Base64
-#include "common/descriptor.h"		// KNOT_RRTYPE_A
+#include "zscanner/descriptor.h"	// KNOT_RRTYPE_A
 
 /*! \brief Shorthand for setting warning data. */
 #define SCANNER_WARNING(code) { s->error_code = code; }
diff --git a/src/zscanner/scanner.rl b/src/zscanner/scanner.rl
index c36e7533ab6da0a967f06d837fc1422c533fd29e..973d4de6024da9278d29095a0f7d315f6d17fc7a 100644
--- a/src/zscanner/scanner.rl
+++ b/src/zscanner/scanner.rl
@@ -31,7 +31,7 @@
 #include "zscanner/error.h"		// error codes
 #include "zscanner/file_loader.h"	// file_loader
 #include "zscanner/scanner_functions.h"	// Base64
-#include "common/descriptor.h"		// KNOT_RRTYPE_A
+#include "zscanner/descriptor.h"	// KNOT_RRTYPE_A
 
 /*! \brief Shorthand for setting warning data. */
 #define SCANNER_WARNING(code) { s->error_code = code; }
diff --git a/src/zscanner/scanner_functions.c b/src/zscanner/scanner_functions.c
index 6416c0cb9c77daf32f6a8d0fbeaa8d0fa9a4dfc5..d697e79987c7f8076f472d864c91619e77f8defc 100644
--- a/src/zscanner/scanner_functions.c
+++ b/src/zscanner/scanner_functions.c
@@ -21,7 +21,7 @@
 #include "zscanner/scanner_functions.h"
 #include "zscanner/error.h"		// error codes
 #include "zscanner/scanner.h"		// scanner_t
-#include "common/descriptor.h"		// KNOT_RDATA_WF_END
+#include "zscanner/descriptor.h"	// KNOT_RDATA_WF_END
 
 const uint8_t digit_to_num[] = {
     ['0'] = 0, ['1'] = 1, ['2'] = 2, ['3'] = 3, ['4'] = 4,
diff --git a/src/zscanner/test/processing.c b/src/zscanner/test/processing.c
index e9636895c41402cb109d20259a765fa990e870d5..438c3723ee743b3385df6364498f51511e30632d 100644
--- a/src/zscanner/test/processing.c
+++ b/src/zscanner/test/processing.c
@@ -21,7 +21,7 @@
 #include "zscanner/test/processing.h"
 #include "zscanner/error.h"		// zscanner_strerror
 #include "zscanner/scanner.h"		// scanner_t
-#include "common/descriptor.h"		// knot_rrtype_to_string
+#include "zscanner/descriptor.h"	// knot_rrtype_to_string
 
 #define ERROR_CODE_TO_STRING(code) [code - ZSCANNER_UNCOVERED_STATE] = #code
 const char *error_names[] = {