diff --git a/Knot.files b/Knot.files
index 22d95ffd98980e1ef5318333be639f79912bfb1a..acde82568ca2487dc9f31b185c8c9fc06df44883 100644
--- a/Knot.files
+++ b/Knot.files
@@ -74,8 +74,6 @@ src/common/lists.h
 src/common/lists.c
 src/common/heap.h
 src/common/heap.c
-src/common/base32.h
-src/common/base32.c
 src/common/print.c
 src/common/print.h
 src/common/latency.c
@@ -188,6 +186,10 @@ src/tests/common/slab_tests.c
 src/tests/common/slab_tests.h
 src/tests/common/fdset_tests.c
 src/tests/common/fdset_tests.h
+src/tests/common/base64_tests.c
+src/tests/common/base64_tests.h
+src/tests/common/base32hex_tests.c
+src/tests/common/base32hex_tests.h
 src/tests/knot/dthreads_tests.c
 src/tests/knot/dthreads_tests.h
 src/tests/knot/conf_tests.c
@@ -273,6 +275,17 @@ doc/version.texi
 doc/running.texi
 src/libknot/zone/zone-diff.h
 src/libknot/zone/zone-diff.c
+src/zscanner/file_loader.c
+src/zscanner/file_loader.h
+src/zscanner/scanner.h
+src/zscanner/scanner_body.rl
+src/zscanner/scanner_functions.c
+src/zscanner/scanner_functions.h
+src/zscanner/test/zscanner_test.c
+src/zscanner/test/processing.c
+src/zscanner/test/processing.h
+src/zscanner/test/tests.c
+src/zscanner/test/tests.h
 src/utils/common/msg.h
 src/utils/common/msg.c
 src/utils/common/params.c
diff --git a/src/utils/common/params.h b/src/utils/common/params.h
index 47aa3f5113f45cb477512a4d79cfde67ebe722d4..ba5ad22d3fb4026f0b99911fad91b86da5ed0b15 100644
--- a/src/utils/common/params.h
+++ b/src/utils/common/params.h
@@ -104,11 +104,11 @@ typedef struct {
 	int32_t		wait;
 	/*!< Stop quering if servfail. */
 	bool		servfail_stop;
-	/*!< Verbose mode. */
+	/*!< Output format. */
 	format_t	format;
 	/*!< TSIG key used. */
 	knot_key_t	key;
-	/*!< Implementation specific ptr. */
+	/*!< Implementation specific data. */
 	void*		d;
 } params_t;
 
diff --git a/src/utils/host/host_params.c b/src/utils/host/host_params.c
index 0585b3cb0911c2c9fd54b56883486a845d1aced4..c9f65e969d69d130104eeff70464e3745d629918 100644
--- a/src/utils/host/host_params.c
+++ b/src/utils/host/host_params.c
@@ -25,7 +25,7 @@
 #include "common/errcode.h"		// KNOT_EOK
 #include "libknot/util/descriptor.h"	// KNOT_CLASS_IN
 #include "utils/common/msg.h"		// WARN
-#include "utils/dig/dig_params.h"       // dig_params_t
+#include "utils/dig/dig_params.h"	// dig_params_t
 #include "utils/common/resolv.h"	// get_nameservers
 
 static int host_params_init(params_t *params)
diff --git a/src/utils/nsupdate/nsupdate_params.c b/src/utils/nsupdate/nsupdate_params.c
index 9380983643a78eac172592b76f0a6a0041bf06f1..63a7fefecd5ec7184b2ad984a98ed343c3560431 100644
--- a/src/utils/nsupdate/nsupdate_params.c
+++ b/src/utils/nsupdate/nsupdate_params.c
@@ -87,7 +87,7 @@ static int nsupdate_params_init(params_t *params)
 	add_tail(&params->servers, (node *)srv);
 	
 	/* Initialize RR parser. */
-	npar->rrp = scanner_create("-");
+	npar->rrp = scanner_create(".");
 	if (!npar->rrp) return KNOT_ENOMEM;
 	npar->rrp->process_record = parse_rr;
 	npar->rrp->process_error = parse_err;
diff --git a/src/zscanner/scanner.c b/src/zscanner/scanner.c
index c819caaf3afef6194721da5e8bddde7eb8220fb4..02256e8979bfd23e1b51e41c3f3ce796478acf1e 100644
--- a/src/zscanner/scanner.c
+++ b/src/zscanner/scanner.c
@@ -5323,7 +5323,7 @@ _match:
 					  text_origin);
 		}
 
-		if (s->include_filename[0] != '/') { // Relative file path..
+		if (s->include_filename[0] != '/') { // Relative file path.
 			// Get absolute path of the current zone file.
 			if (realpath(s->file_name, (char*)(s->buffer)) != NULL) {
 				char *full_current_zone_file_name =
diff --git a/src/zscanner/scanner.h b/src/zscanner/scanner.h
index 040254c917d354ca1ec5a8c8921c298deaa61a9d..e9027918981f044500e840d3e5dfa40de237237e 100644
--- a/src/zscanner/scanner.h
+++ b/src/zscanner/scanner.h
@@ -227,7 +227,12 @@ struct scanner {
 /*!
  * \brief Creates zone scanner structure.
  *
- * \param file_name	Zone file name.
+ * \note After creation scanner structure, it is necessary to set next items:
+ *       process_record, process_error, default_class, default_ttl, zone_origin.
+ *
+ * \param file_name	Zone file name. If parsing from memory use arbitrary
+ *                      directory name (like "."), because relative includes
+ *                      are considered to this file.
  *
  * \retval scanner	if success.
  * \retval 0		if error.
diff --git a/src/zscanner/scanner_body.rl b/src/zscanner/scanner_body.rl
index 3d512c09c603318c6fde2a1b553c6afedb2f4740..859cd08c1a9b32eebf6f3092b5fdbdb974cdbb4f 100644
--- a/src/zscanner/scanner_body.rl
+++ b/src/zscanner/scanner_body.rl
@@ -654,7 +654,7 @@
 					  text_origin);
 		}
 
-		if (s->include_filename[0] != '/') { // Relative file path..
+		if (s->include_filename[0] != '/') { // Relative file path.
 			// Get absolute path of the current zone file.
 			if (realpath(s->file_name, (char*)(s->buffer)) != NULL) {
 				char *full_current_zone_file_name =