diff --git a/game/engines/default/engine/dialogs/VideoOptions.lua b/game/engines/default/engine/dialogs/VideoOptions.lua
index 57ffc7bdca1fb5bb43f23e9d9a1b9baf429602c2..9c409ebf7e19b9c3a483039d015802614adb5071 100644
--- a/game/engines/default/engine/dialogs/VideoOptions.lua
+++ b/game/engines/default/engine/dialogs/VideoOptions.lua
@@ -136,12 +136,13 @@ function _M:generateList()
 	list[#list+1] = { zone=zone, name=string.toTString"#GOLD##{bold}#Gamma correction#WHITE##{normal}#", status=function(item)
 		return tostring(config.settings.gamma_correction)
 	end, fct=function(item)
-		game:registerDialog(GetQuantity.new("Gamma correction", "From 1 to 300", config.settings.gamma_correction, 300, function(qty)
+		game:registerDialog(GetQuantity.new("Gamma correction", "From 50 to 300", config.settings.gamma_correction, 300, function(qty)
+			qty = util.bound(qty, 50, 300)
 			game:saveSettings("gamma_correction", ("gamma_correction = %d\n"):format(qty))
 			config.settings.gamma_correction = qty
 			core.display.setGamma(config.settings.gamma_correction / 100)
 			self.c_list:drawItem(item)
-		end), 1)
+		end), 50)
 	end,}
 
 	self.list = list
diff --git a/game/engines/default/engine/utils.lua b/game/engines/default/engine/utils.lua
index c7edf150a496bbe7733bb28b1478ee24459329f2..f2b55125588e4029440aca6e7f0eb4754928d2e1 100644
--- a/game/engines/default/engine/utils.lua
+++ b/game/engines/default/engine/utils.lua
@@ -707,6 +707,24 @@ function tstring:tokenize(tokens)
 	return ret
 end
 
+function tstring:extractLines()
+	local rets = {}
+	local ret = tstring{}
+	local v, tv
+	for i = 1, #self do
+		v = self[i]
+		tv = type(v)
+		if tv == true then
+			rets[#rets+1] = ret
+			ret = tstring{}
+		else
+			ret[#ret+1] = v
+		end
+	end
+	rets[#rets+1] = ret
+	return rets
+end
+
 function tstring:makeLineTextures(max_width, font, no_split, r, g, b)
 	local list = no_split and self or self:splitLines(max_width, font)
 	local fh = font:lineSkip()