diff --git a/mods/flowers/init.lua b/mods/flowers/init.lua
index 62e4a4a79fabd6ce2c54656dc630ecd5d2566758..9da78ed82b94cea4b99b1359383e577013b039f4 100644
--- a/mods/flowers/init.lua
+++ b/mods/flowers/init.lua
@@ -266,7 +266,7 @@ minetest.register_alias("mushroom:red_natural", "flowers:mushroom_red")
 -- Waterlily
 --
 
-minetest.register_node("flowers:waterlily", {
+local waterlily_def = {
 	description = "Waterlily",
 	drawtype = "nodebox",
 	paramtype = "light",
@@ -294,7 +294,6 @@ minetest.register_node("flowers:waterlily", {
 		local pos = pointed_thing.above
 		local node = minetest.get_node(pointed_thing.under)
 		local def = minetest.registered_nodes[node.name]
-		local player_name = placer and placer:get_player_name() or ""
 
 		if def and def.on_rightclick then
 			return def.on_rightclick(pointed_thing.under, node, placer, itemstack,
@@ -303,8 +302,10 @@ minetest.register_node("flowers:waterlily", {
 
 		if def and def.liquidtype == "source" and
 				minetest.get_item_group(node.name, "water") > 0 then
+			local player_name = placer and placer:get_player_name() or ""
 			if not minetest.is_protected(pos, player_name) then
-				minetest.set_node(pos, {name = "flowers:waterlily",
+				minetest.set_node(pos, {name = "flowers:waterlily" ..
+					(def.waving == 3 and "_waving" or ""),
 					param2 = math.random(0, 3)})
 				if not (creative and creative.is_enabled_for
 						and creative.is_enabled_for(player_name)) then
@@ -318,4 +319,13 @@ minetest.register_node("flowers:waterlily", {
 
 		return itemstack
 	end
-})
+}
+
+local waterlily_waving_def = table.copy(waterlily_def)
+waterlily_waving_def.waving = 3
+waterlily_waving_def.drop = "flowers:waterlily"
+waterlily_waving_def.groups.not_in_creative_inventory = 1
+
+minetest.register_node("flowers:waterlily", waterlily_def)
+minetest.register_node("flowers:waterlily_waving", waterlily_waving_def)
+
diff --git a/mods/flowers/mapgen.lua b/mods/flowers/mapgen.lua
index ad759c2546a6044d0545981a86581442334506a3..85e19b729993af4af72c67c1c5bbbc8e4e9743d8 100644
--- a/mods/flowers/mapgen.lua
+++ b/mods/flowers/mapgen.lua
@@ -60,7 +60,7 @@ local function register_mgv6_waterlily()
 		},
 		y_max = 0,
 		y_min = 0,
-		decoration = "flowers:waterlily",
+		decoration = "flowers:waterlily_waving",
 		param2 = 0,
 		param2_max = 3,
 		place_offset_y = 1,
@@ -146,7 +146,7 @@ local function register_waterlily()
 		biomes = {"rainforest_swamp", "savanna_shore", "deciduous_forest_shore"},
 		y_max = 0,
 		y_min = 0,
-		decoration = "flowers:waterlily",
+		decoration = "flowers:waterlily_waving",
 		param2 = 0,
 		param2_max = 3,
 		place_offset_y = 1,