diff --git a/game/engines/default/data/gfx/ui/textbox-sel1.png b/game/engines/default/data/gfx/ui/textbox-sel1.png
new file mode 100644
index 0000000000000000000000000000000000000000..5e06fd82ba7e7685e6ff596bf068491f9119f244
Binary files /dev/null and b/game/engines/default/data/gfx/ui/textbox-sel1.png differ
diff --git a/game/engines/default/data/gfx/ui/textbox-sel2.png b/game/engines/default/data/gfx/ui/textbox-sel2.png
new file mode 100644
index 0000000000000000000000000000000000000000..f532b957a2f10d8441e00f67fd8aae969f11f9c3
Binary files /dev/null and b/game/engines/default/data/gfx/ui/textbox-sel2.png differ
diff --git a/game/engines/default/data/gfx/ui/textbox-sel3.png b/game/engines/default/data/gfx/ui/textbox-sel3.png
new file mode 100644
index 0000000000000000000000000000000000000000..30a8944a9c656727cc37db3108d1ab1ae12b2dd6
Binary files /dev/null and b/game/engines/default/data/gfx/ui/textbox-sel3.png differ
diff --git a/game/engines/default/data/gfx/ui/textbox-sel4.png b/game/engines/default/data/gfx/ui/textbox-sel4.png
new file mode 100644
index 0000000000000000000000000000000000000000..b83f99b3cce9fdc8d43aa81f50ec44b1431da417
Binary files /dev/null and b/game/engines/default/data/gfx/ui/textbox-sel4.png differ
diff --git a/game/engines/default/data/gfx/ui/textbox-sel5.png b/game/engines/default/data/gfx/ui/textbox-sel5.png
new file mode 100644
index 0000000000000000000000000000000000000000..1e25479fa6a4c9a49b8a1100324a3d1014507813
Binary files /dev/null and b/game/engines/default/data/gfx/ui/textbox-sel5.png differ
diff --git a/game/engines/default/data/gfx/ui/textbox-sel6.png b/game/engines/default/data/gfx/ui/textbox-sel6.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d575c1166507e3ae3b8091233050202ae9f2a02
Binary files /dev/null and b/game/engines/default/data/gfx/ui/textbox-sel6.png differ
diff --git a/game/engines/default/data/gfx/ui/textbox-sel7.png b/game/engines/default/data/gfx/ui/textbox-sel7.png
new file mode 100644
index 0000000000000000000000000000000000000000..bf79f1c48cdb6590ce32b43d47ffc40968289a11
Binary files /dev/null and b/game/engines/default/data/gfx/ui/textbox-sel7.png differ
diff --git a/game/engines/default/data/gfx/ui/textbox-sel8.png b/game/engines/default/data/gfx/ui/textbox-sel8.png
new file mode 100644
index 0000000000000000000000000000000000000000..0cae2cf773072f35d45ee9b674c561a8d3280216
Binary files /dev/null and b/game/engines/default/data/gfx/ui/textbox-sel8.png differ
diff --git a/game/engines/default/data/gfx/ui/textbox-sel9.png b/game/engines/default/data/gfx/ui/textbox-sel9.png
new file mode 100644
index 0000000000000000000000000000000000000000..6bfa6916b3974b2b62c27cb2faa9c135519b8b1c
Binary files /dev/null and b/game/engines/default/data/gfx/ui/textbox-sel9.png differ
diff --git a/game/engines/default/engine/ui/Numberbox.lua b/game/engines/default/engine/ui/Numberbox.lua
index 95a5805434dfe1b914835ae709b5f6af6479f457..d8faf0f385c72213c2ae39e9c7a075cd42a6decd 100644
--- a/game/engines/default/engine/ui/Numberbox.lua
+++ b/game/engines/default/engine/ui/Numberbox.lua
@@ -55,6 +55,7 @@ function _M:generate()
 
 	self.texcursor = self:getTexture("ui/textbox-cursor.png")
 	self.frame = self:makeFrame("ui/textbox", frame_w, self.h)
+	self.frame_sel = self:makeFrame("ui/textbox-sel", frame_w, self.h)
 
 	local w, h = self.w, self.h
 	local fw, fh = frame_w - 12, self.font_h
@@ -150,13 +151,13 @@ end
 
 function _M:display(x, y, nb_keyframes)
 	self.tex:toScreenFull(x, y, self.title_w, self.h, self.tex_w, self.tex_h)
-	self:drawFrame(self.frame, x + self.title_w, y)
 	if self.focused then
---		self:drawFrame(self.frame, x + self.title_w, y, 1, 1, 1, self.focus_decay / self.focus_decay_max_d)
+		self:drawFrame(self.frame_sel, x + self.title_w, y)
 		self.texcursor.t:toScreenFull(x + self.text_x + (self.cursor-self.scroll) * self.font_mono_w, y + self.cursor_y, self.texcursor.w, self.texcursor.h, self.texcursor.tw, self.texcursor.th)
 	else
+		self:drawFrame(self.frame, x + self.title_w, y)
 		if self.focus_decay then
---			self:drawFrame(self.frame, x + self.title_w, y, 1, 1, 1, self.focus_decay / self.focus_decay_max_d)
+			self:drawFrame(self.frame_sel, x + self.title_w, y, 1, 1, 1, self.focus_decay / self.focus_decay_max_d)
 			self.focus_decay = self.focus_decay - nb_keyframes
 			if self.focus_decay <= 0 then self.focus_decay = nil end
 		end
diff --git a/game/engines/default/engine/ui/Textbox.lua b/game/engines/default/engine/ui/Textbox.lua
index 247aa59ca8dc1d5a3a82e5c111c055962933dcd5..cb3306080565a1a82365109d3ce56c0a9425d2f4 100644
--- a/game/engines/default/engine/ui/Textbox.lua
+++ b/game/engines/default/engine/ui/Textbox.lua
@@ -54,6 +54,7 @@ function _M:generate()
 
 	self.texcursor = self:getTexture("ui/textbox-cursor.png")
 	self.frame = self:makeFrame("ui/textbox", frame_w, self.h)
+	self.frame_sel = self:makeFrame("ui/textbox-sel", frame_w, self.h)
 
 	local w, h = self.w, self.h
 	local fw, fh = frame_w - 12, self.font_h
@@ -135,13 +136,13 @@ end
 
 function _M:display(x, y, nb_keyframes)
 	self.tex:toScreenFull(x, y, self.title_w, self.h, self.tex_w, self.tex_h)
-	self:drawFrame(self.frame, x + self.title_w, y)
 	if self.focused then
---		self:drawFrame(self.frame, x + self.title_w, y, 1, 1, 1, self.focus_decay / self.focus_decay_max_d)
+		self:drawFrame(self.frame_sel, x + self.title_w, y)
 		self.texcursor.t:toScreenFull(x + self.text_x + (self.cursor-self.scroll) * self.font_mono_w, y + self.cursor_y, self.texcursor.w, self.texcursor.h, self.texcursor.tw, self.texcursor.th)
 	else
+		self:drawFrame(self.frame, x + self.title_w, y)
 		if self.focus_decay then
---			self:drawFrame(self.frame, x + self.title_w, y, 1, 1, 1, self.focus_decay / self.focus_decay_max_d)
+			self:drawFrame(self.frame_sel, x + self.title_w, y, 1, 1, 1, self.focus_decay / self.focus_decay_max_d)
 			self.focus_decay = self.focus_decay - nb_keyframes
 			if self.focus_decay <= 0 then self.focus_decay = nil end
 		end