diff --git a/Makefile.am b/Makefile.am
index b74e190..d8d1994 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -308,7 +308,9 @@
 	testsuite/test-hash \
 	testsuite/test-array \
 	testsuite/test-strbuf \
-	testsuite/test-init testsuite/test-testsuite testsuite/test-loaded \
+	testsuite/test-init \
+	testsuite/test-initstate \
+	testsuite/test-testsuite testsuite/test-loaded \
 	testsuite/test-modinfo testsuite/test-util testsuite/test-new-module \
 	testsuite/test-modprobe testsuite/test-blacklist \
 	testsuite/test-dependencies testsuite/test-depmod \
@@ -332,6 +334,8 @@
 
 testsuite_test_init_LDADD = $(TESTSUITE_LDADD)
 testsuite_test_init_CPPFLAGS = $(TESTSUITE_CPPFLAGS)
+testsuite_test_initstate_LDADD = $(TESTSUITE_LDADD)
+testsuite_test_initstate_CPPFLAGS = $(TESTSUITE_CPPFLAGS)
 testsuite_test_loaded_LDADD = $(TESTSUITE_LDADD)
 testsuite_test_loaded_CPPFLAGS = $(TESTSUITE_CPPFLAGS)
 testsuite_test_modinfo_LDADD = $(TESTSUITE_LDADD)
diff --git a/testsuite/.gitignore b/testsuite/.gitignore
index 274254c..09f231c 100644
--- a/testsuite/.gitignore
+++ b/testsuite/.gitignore
@@ -9,6 +9,7 @@
 /test-dependencies
 /test-depmod
 /test-init
+/test-initstate
 /test-loaded
 /test-modinfo
 /test-new-module
@@ -32,6 +33,8 @@
 /test-depmod.trs
 /test-init.log
 /test-init.trs
+/test-initstate.log
+/test-initstate.trs
 /test-loaded.log
 /test-loaded.trs
 /test-modinfo.log
diff --git a/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.alias b/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.alias
new file mode 100644
index 0000000..ba76e18
--- /dev/null
+++ b/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.alias
@@ -0,0 +1 @@
+# Aliases extracted from modules themselves.
diff --git a/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.alias.bin b/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.alias.bin
new file mode 100644
index 0000000..7075435
--- /dev/null
+++ b/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.alias.bin
Binary files differ
diff --git a/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.builtin b/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.builtin
new file mode 100644
index 0000000..1cbec61
--- /dev/null
+++ b/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.builtin
@@ -0,0 +1 @@
+kernel/fake_builtin.ko
diff --git a/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.builtin.bin b/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.builtin.bin
new file mode 100644
index 0000000..0423f03
--- /dev/null
+++ b/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.builtin.bin
Binary files differ
diff --git a/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.dep b/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.dep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.dep
diff --git a/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.dep.bin b/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.dep.bin
new file mode 100644
index 0000000..7075435
--- /dev/null
+++ b/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.dep.bin
Binary files differ
diff --git a/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.devname b/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.devname
new file mode 100644
index 0000000..58f6d6d
--- /dev/null
+++ b/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.devname
@@ -0,0 +1 @@
+# Device nodes to trigger on-demand module loading.
diff --git a/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.softdep b/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.softdep
new file mode 100644
index 0000000..5554ccc
--- /dev/null
+++ b/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.softdep
@@ -0,0 +1 @@
+# Soft dependencies extracted from modules themselves.
diff --git a/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.symbols b/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.symbols
new file mode 100644
index 0000000..618c345
--- /dev/null
+++ b/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.symbols
@@ -0,0 +1 @@
+# Aliases for symbols, used by symbol_request().
diff --git a/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.symbols.bin b/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.symbols.bin
new file mode 100644
index 0000000..7075435
--- /dev/null
+++ b/testsuite/rootfs-pristine/test-initstate/lib/modules/4.4.4/modules.symbols.bin
Binary files differ
diff --git a/testsuite/test-initstate.c b/testsuite/test-initstate.c
new file mode 100644
index 0000000..da2303a
--- /dev/null
+++ b/testsuite/test-initstate.c
@@ -0,0 +1,126 @@
+/*
+ * Copyright (C) 2015  Intel Corporation. All rights reserved.
+ *
+ * This program 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 program 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <errno.h>
+#include <inttypes.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <syslog.h>
+#include <unistd.h>
+
+#include <libkmod/libkmod.h>
+
+#include <shared/macro.h>
+
+#include "testsuite.h"
+
+
+static noreturn int test_initstate_from_lookup(const struct test *t)
+{
+	struct kmod_ctx *ctx;
+	struct kmod_list *list = NULL;
+	struct kmod_module *mod;
+	const char *null_config = NULL;
+	int err, r;
+
+	ctx = kmod_new(NULL, &null_config);
+	if (ctx == NULL)
+		exit(EXIT_FAILURE);
+
+	err = kmod_module_new_from_lookup(ctx, "fake-builtin", &list);
+	if (err != 0) {
+		ERR("could not create module from lookup: %s\n", strerror(-err));
+		exit(EXIT_FAILURE);
+	}
+
+	if (!list) {
+		ERR("could not create module from lookup: module not found: fake-builtin\n");
+		exit(EXIT_FAILURE);
+	}
+
+	mod = kmod_module_get_module(list);
+
+	r = kmod_module_get_initstate(mod);
+	if (r != KMOD_MODULE_BUILTIN) {
+		ERR("module should have builtin state but is: %s\n",
+		    kmod_module_initstate_str(r));
+		exit(EXIT_FAILURE);
+	}
+
+	kmod_module_unref(mod);
+	kmod_module_unref_list(list);
+	kmod_unref(ctx);
+
+	exit(EXIT_SUCCESS);
+}
+DEFINE_TEST(test_initstate_from_lookup,
+	.description = "test if libkmod return correct initstate for builtin module from lookup",
+	.config = {
+		[TC_ROOTFS] = TESTSUITE_ROOTFS "test-initstate",
+		[TC_UNAME_R] = "4.4.4",
+	},
+	.need_spawn = true);
+
+static noreturn int test_initstate_from_name(const struct test *t)
+{
+	struct kmod_ctx *ctx;
+	struct kmod_module *mod = NULL;
+	const char *null_config = NULL;
+	int err, r;
+
+	ctx = kmod_new(NULL, &null_config);
+	if (ctx == NULL)
+		exit(EXIT_FAILURE);
+
+	err = kmod_module_new_from_name(ctx, "fake-builtin", &mod);
+	if (err != 0) {
+		ERR("could not create module from lookup: %s\n", strerror(-err));
+		exit(EXIT_FAILURE);
+	}
+
+	if (!mod) {
+		ERR("could not create module from lookup: module not found: fake-builtin\n");
+		exit(EXIT_FAILURE);
+	}
+
+	r = kmod_module_get_initstate(mod);
+	if (r != KMOD_MODULE_BUILTIN) {
+		ERR("module should have builtin state but is: %s\n",
+		    kmod_module_initstate_str(r));
+		exit(EXIT_FAILURE);
+	}
+
+	kmod_module_unref(mod);
+	kmod_unref(ctx);
+
+	exit(EXIT_SUCCESS);
+}
+DEFINE_TEST(test_initstate_from_name,
+	.description = "test if libkmod return correct initstate for builtin module from name",
+	.config = {
+		[TC_ROOTFS] = TESTSUITE_ROOTFS "test-initstate",
+		[TC_UNAME_R] = "4.4.4",
+	},
+	.need_spawn = true);
+
+
+
+
+TESTSUITE_MAIN();
