diff --git a/src/uifc/uifcfltk.cpp b/src/uifc/uifcfltk.cpp
index 187c90c63f612bbde68552e07e9f8b496ad81469..73853ee3c35c01ba054934cca0355c69c238b2e7 100644
--- a/src/uifc/uifcfltk.cpp
+++ b/src/uifc/uifcfltk.cpp
@@ -399,6 +399,18 @@ int UIFC_Button::handle(int event)  {
 			parent()->child(i)->handle(FL_FOCUS);
 			return(1);
 		}
+		if(key==FL_HOME)  {
+			i=0;
+			Fl::focus(parent()->child(i));
+			parent()->child(i)->handle(FL_FOCUS);
+			return(1);
+		}
+		if(key==FL_End)  {
+			i=parent()->children*()-3;
+			Fl::focus(parent()->child(i));
+			parent()->child(i)->handle(FL_FOCUS);
+			return(1);
+		}
 	}
 	return Fl_Button::handle(event);
 }