diff --git a/mods/default/craftitems.lua b/mods/default/craftitems.lua
index 3d2cb113..539f6b43 100644
--- a/mods/default/craftitems.lua
+++ b/mods/default/craftitems.lua
@@ -14,6 +14,7 @@ minetest.register_craftitem("default:paper", {
 minetest.register_craftitem("default:book", {
 	description = "Book",
 	inventory_image = "default_book.png",
+	groups = {book=1},
 })
 
 minetest.register_craftitem("default:coal_lump", {
diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua
index 3fe0fe80..7e7977c6 100644
--- a/mods/default/nodes.lua
+++ b/mods/default/nodes.lua
@@ -409,7 +409,8 @@ minetest.register_node("default:bookshelf", {
 		local inv = meta:get_inventory()
 		local to_stack = inv:get_stack(listname, index)
 		if listname == "books" then
-			if stack:get_name() == "default:book" and to_stack:is_empty() then
+			if minetest.get_item_group(stack:get_name(), "book") ~= 0
+					and to_stack:is_empty() then
 				return 1
 			else
 				return 0