diff --git a/game_api.txt b/game_api.txt
index 6ce69f09f46cb796508b60b8a29af525b4d77ba9..0f53dbc1a71d0abded25ea67a69461e756048242 100644
--- a/game_api.txt
+++ b/game_api.txt
@@ -23,7 +23,7 @@ The bucket API allows registering new types of buckets for non-default liquids.
 		"bucket_lava.png",			-- Bucket texture (for wielditem and inventory_image)
 		"Lava Bucket"				-- Bucket description
 	)
-	
+
 Doors API
 ---------
 The doors mod allows modders to register custom doors.
@@ -31,7 +31,7 @@ The doors mod allows modders to register custom doors.
 	doors.register_door(name, def)
 	^ name: "Door name"
 	^ def: See [#Door definition]
-	
+
 #Door definition
 ----------------
 {
@@ -58,7 +58,7 @@ The farming API allows you to easily register plants and hoes.
 
 farming.register_hoe(name, hoe definition)
  -> Register a new hoe, see [#hoe definition]
- 
+
 farming.register_plant(name, Plant definition)
  -> Register a new growing plant, see [#Plant definition]
 
@@ -99,7 +99,7 @@ stairs.register_stair(subname, recipeitem, groups, images, description, sounds)
  -> images: see [Tile definition]
  -> description: used for the description field in the stair's definition
  -> sounds: see [#Default sounds]
- 
+
 stairs.register_slab(subname, recipeitem, groups, images, description, sounds)
  -> Registers a slabs
  -> subname: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_subname"
@@ -108,13 +108,13 @@ stairs.register_slab(subname, recipeitem, groups, images, description, sounds)
  -> images: see [Tile definition]
  -> description: used for the description field in the stair's definition
  -> sounds: see [#Default sounds]
- 
+
 stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab, sounds)
  -> A wrapper for stairs.register_stair and stairs.register_slab
  -> Uses almost the same arguments as stairs.register_stair
  -> desc_stair: Description for stair node
  -> desc_slab: Description for slab node
- 
+
 Xpanes API
 ----------
 Creates panes that automatically connect to each other
@@ -280,3 +280,14 @@ dye.basecolors
 
 dye.excolors
 ^ Array containing the names of the available extended colors
+
+Trees
+-----
+default.grow_tree(pos, is_apple_tree)
+^ Grows a tree or apple tree at pos
+
+default.grow_jungle_tree(pos)
+^ Grows a jungletree at pos
+
+default.grow_pine_tree(pos)
+^ Grows a pinetree at pos
diff --git a/mods/default/trees.lua b/mods/default/trees.lua
index f2baaf850f7709aaef529a04c0bad67fd69aaf4d..eaf85f966fcfbaca05664d0090a7122375a173a5 100644
--- a/mods/default/trees.lua
+++ b/mods/default/trees.lua
@@ -45,7 +45,7 @@ minetest.register_abm({
 
 		minetest.log("action", "A jungle sapling grows into a tree at "..
 				minetest.pos_to_string(pos))
-		default.grow_jungletree(pos)
+		default.grow_jungle_tree(pos)
 	end
 })
 
@@ -60,7 +60,7 @@ minetest.register_abm({
 
 		minetest.log("action", "A pine sapling grows into a tree at "..
 				minetest.pos_to_string(pos))
-		default.grow_pinetree(pos)
+		default.grow_pine_tree(pos)
 	end
 })
 
@@ -157,14 +157,14 @@ end
 
 -- Jungletree
 
-function default.grow_jungletree(pos, bad)
+function default.grow_jungle_tree(pos, bad)
 	--[[
 		NOTE: Jungletree-placing code is currently duplicated in the engine
 		and in games that have saplings; both are deprecated but not
 		replaced yet
 	--]]
 	if bad then
-		error("Deprecated use of default.grow_jungletree")
+		error("Deprecated use of default.grow_jungle_tree")
 	end
 
 	local x, y, z = pos.x, pos.y, pos.z
@@ -220,7 +220,7 @@ local function add_snow(data, vi, c_air, c_ignore, c_snow)
 	end
 end
 
-function default.grow_pinetree(pos)
+function default.grow_pine_tree(pos)
 	local x, y, z = pos.x, pos.y, pos.z
 	local maxy = y + random(9, 13) -- Trunk top