Index: libs/libmyth/mythwidgets.cpp
===================================================================
--- libs/libmyth/mythwidgets.cpp	(revision 15409)
+++ libs/libmyth/mythwidgets.cpp	(working copy)
@@ -567,7 +567,7 @@
 }
 
 MythRemoteLineEdit::MythRemoteLineEdit(QWidget * parent, const char * name)
-                  : QTextEdit(parent, name)
+                  : QTextEdit(parent, name), m_acceptNumbersOnly(false)
 {
     my_font = NULL;
     m_lines = 1;
@@ -576,7 +576,7 @@
 
 MythRemoteLineEdit::MythRemoteLineEdit(const QString & contents, 
                                        QWidget * parent, const char * name)
-                  : QTextEdit(parent, name)
+                  : QTextEdit(parent, name), m_acceptNumbersOnly(false)
 {
     my_font = NULL;
     m_lines = 1;
@@ -586,7 +586,7 @@
 
 MythRemoteLineEdit::MythRemoteLineEdit(QFont *a_font, QWidget * parent, 
                                        const char * name)
-                  : QTextEdit(parent, name)
+                  : QTextEdit(parent, name), m_acceptNumbersOnly(false)
 {
     my_font = a_font;
     m_lines = 1;
@@ -595,7 +595,7 @@
 
 MythRemoteLineEdit::MythRemoteLineEdit(int lines, QWidget * parent, 
                                        const char * name)
-                  : QTextEdit(parent, name)
+                  : QTextEdit(parent, name), m_acceptNumbersOnly(false)
 {
     my_font = NULL;
     m_lines = lines;
@@ -867,34 +867,76 @@
             QString action = actions[i];
             handled = true;
 
-            if (action == "UP")
+            if(!m_acceptNumbersOnly)
             {
-                endCycle();
-                // Need to call very base one because
-                // QTextEdit reimplements it to tab
-                // through links (even if you're in
-                // PlainText Mode !!)
-                QWidget::focusNextPrevChild(false);
-                emit tryingToLooseFocus(false);
+            	if (action == "UP")
+            	{
+            		endCycle();
+            		// Need to call very base one because
+            		// QTextEdit reimplements it to tab
+            		// through links (even if you're in
+            		// PlainText Mode !!)
+            		QWidget::focusNextPrevChild(false);
+            		emit tryingToLooseFocus(false);
+            	}
+            	else if (action == "DOWN")
+            	{
+            		endCycle();
+            		QWidget::focusNextPrevChild(true);
+            		emit tryingToLooseFocus(true);
+            	}
+            	else if ((action == "SELECT") &&
+            			(!active_cycle) &&
+            			((e->text().isEmpty()) ||
+            					(e->key() == Qt::Key_Enter) || 
+            					(e->key() == Qt::Key_Return)))
+            	{
+            		if (useVirtualKeyboard)
+            			popupVirtualKeyboard();
+            	}            
+            	else
+            		handled = false;
             }
-            else if (action == "DOWN")
+            else
             {
-                endCycle();
-                QWidget::focusNextPrevChild(true);
-                emit tryingToLooseFocus(true);
+            	if (action == "UP")
+            	{            		
+            		// Need to call very base one because
+            		// QTextEdit reimplements it to tab
+            		// through links (even if you're in
+            		// PlainText Mode !!)
+            		QWidget::focusNextPrevChild(false);
+            		emit tryingToLooseFocus(false);
+            	}
+            	else if (action == "DOWN")
+            	{            		
+            		QWidget::focusNextPrevChild(true);
+            		emit tryingToLooseFocus(true);
+            	}
+            	else if(action == "LEFT")
+            	{
+            		backspace();
+            		return;
+            	}
+            	else
+            	{
+            		if(e->key() >= Key_0 && e->key() <= Key_9)
+            		{
+            			QTextEdit::keyPressEvent(e);
+            			emit textChanged(this->text());
+            		}            		
+            	}
+            	return;
             }
-            else if ((action == "SELECT") &&
-                     (!active_cycle) &&
-                     ((e->text().isEmpty()) ||
-                      (e->key() == Qt::Key_Enter) || 
-                      (e->key() == Qt::Key_Return)))
-            {
-                if (useVirtualKeyboard)
-                    popupVirtualKeyboard();
-            }
-            else
-                handled = false;
         }
+    } 
+    else if(m_acceptNumbersOnly){
+    	if(e->key() >= Key_0 && e->key() <= Key_9)
+    	{
+    		QTextEdit::keyPressEvent(e);
+    		emit textChanged(this->text());
+    	}
+    	handled = true;
     }
 
     if (handled)
@@ -906,7 +948,7 @@
         QTextEdit::keyPressEvent(e);
         emit textChanged(this->text());
         return;
-    }
+    }    
 
     switch (e->key())
     {
Index: libs/libmyth/uitypes.cpp
===================================================================
--- libs/libmyth/uitypes.cpp	(revision 15409)
+++ libs/libmyth/uitypes.cpp	(working copy)
@@ -2818,7 +2863,7 @@
 
 UIRemoteEditType::UIRemoteEditType(const QString &name, fontProp *font,
                        const QString &text, int dorder, QRect displayrect)
-           : UIType(name)
+           : UIType(name), m_acceptNumbersOnly(false)
 {
     m_font = font;
     m_text = text;
Index: libs/libmyth/uitypes.h
===================================================================
--- libs/libmyth/uitypes.h	(revision 15409)
+++ libs/libmyth/uitypes.h	(working copy)
@@ -969,6 +977,12 @@
     void    setFont(fontProp *font);
     void    setCharacterColors(QColor unselected, QColor selected, QColor special);
     void    calculateScreenArea();
+    void 	setAcceptNumbersOnly(bool accept){
+    	if(edit){
+    		edit->setAcceptNumbersOnly(accept);
+    		m_acceptNumbersOnly = accept;
+    	}
+    }
 
   public slots:
     void takeFocusAwayFromEditor(bool up_or_down);
@@ -986,9 +1000,10 @@
     QRect    m_displaysize;
     QString  m_text;
     fontProp *m_font;
-    QColor   m_unselected; 
+    QColor   m_unselected;
     QColor   m_selected; 
     QColor   m_special;
+    bool	 m_acceptNumbersOnly;
 
     MythThemedDialog* m_parentDialog;
 };
Index: libs/libmyth/mythwidgets.h
===================================================================
--- libs/libmyth/mythwidgets.h	(revision 15409)
+++ libs/libmyth/mythwidgets.h	(working copy)
@@ -197,6 +197,9 @@
     void del();
     void setPopupPosition(PopupPosition pos) { popupPosition = pos; };
     PopupPosition getPopupPosition(void) { return popupPosition; };
+    void setAcceptNumbersOnly(bool accept){
+    	m_acceptNumbersOnly = accept;
+    }
 
     virtual QString text();
 
@@ -262,6 +265,7 @@
     VirtualKeyboard *popup;
     bool             useVirtualKeyboard;
     PopupPosition    popupPosition;
+    bool			m_acceptNumbersOnly;
 };
 
 class MPUBLIC MythTable : public QTable
