Index: widgets/table/ChangeLog
===================================================================
--- widgets/table/ChangeLog	(revision 34920)
+++ widgets/table/ChangeLog	(working copy)
@@ -1,3 +1,11 @@
+2008-01-28  Milan Crha  <mcrha@redhat.com>
+
+	** Fix for bug #512623
+
+	* e-tree.c: (item_key_press):
+	* e-table.c: (group_key_press):
+	Ignore/consider GDK_MODEx_MASK states.
+
 2008-01-28  Srinivasa Ragavan  <sragavan@novell.com>
 
 	* e-table-item.c: (eti_draw): Fix some gradient issues.
Index: widgets/table/e-tree.c
===================================================================
--- widgets/table/e-tree.c	(revision 34920)
+++ widgets/table/e-tree.c	(working copy)
@@ -889,7 +889,7 @@
 	case GDK_Right:
 	case GDK_KP_Right:
 		/* Only allow if the Shift modifier is used -- eg. Ctrl-Equal shouldn't be handled.  */
-		if ((key->state == 0) || (key->state & ~(GDK_SHIFT_MASK | GDK_LOCK_MASK)))
+		if ((key->state == 0) || (key->state & ~(GDK_SHIFT_MASK | GDK_LOCK_MASK | GDK_MOD1_MASK | GDK_MOD2_MASK | GDK_MOD3_MASK | GDK_MOD4_MASK | GDK_MOD5_MASK)))
 			break;
 		if (row != -1) {
 			path = e_tree_table_adapter_node_at_row(et->priv->etta, row);
@@ -902,7 +902,7 @@
 	case GDK_Left:
 	case GDK_KP_Left:
 		/* Only allow if the Shift modifier is used -- eg. Ctrl-Minus shouldn't be handled.  */
-		if ((key->state == 0) || (key->state & ~(GDK_SHIFT_MASK | GDK_LOCK_MASK)))
+		if ((key->state == 0) || (key->state & ~(GDK_SHIFT_MASK | GDK_LOCK_MASK | GDK_MOD1_MASK | GDK_MOD2_MASK | GDK_MOD3_MASK | GDK_MOD4_MASK | GDK_MOD5_MASK)))
 			break;
 		if (row != -1) {
 			path = e_tree_table_adapter_node_at_row(et->priv->etta, row);
@@ -916,7 +916,7 @@
 			return TRUE;
 		/* Fallthrough */
 	default:
-		if ((key->state & ~(GDK_SHIFT_MASK | GDK_LOCK_MASK)) == 0
+		if ((key->state & ~(GDK_SHIFT_MASK | GDK_LOCK_MASK | GDK_MOD1_MASK | GDK_MOD2_MASK | GDK_MOD3_MASK | GDK_MOD4_MASK | GDK_MOD5_MASK)) == 0
 		    && ((key->keyval >= GDK_a && key->keyval <= GDK_z) ||
 			(key->keyval >= GDK_A && key->keyval <= GDK_Z) ||
 			(key->keyval >= GDK_0 && key->keyval <= GDK_9))) {
Index: widgets/table/e-table.c
===================================================================
--- widgets/table/e-table.c	(revision 34920)
+++ widgets/table/e-table.c	(working copy)
@@ -835,7 +835,7 @@
 		/* Fall through */
 	default:
 		init_search (et);
-		if ((key->state & ~(GDK_SHIFT_MASK | GDK_LOCK_MASK)) == 0
+		if ((key->state & ~(GDK_SHIFT_MASK | GDK_LOCK_MASK | GDK_MOD1_MASK | GDK_MOD2_MASK | GDK_MOD3_MASK | GDK_MOD4_MASK | GDK_MOD5_MASK)) == 0
 		    && ((key->keyval >= GDK_a && key->keyval <= GDK_z) ||
 			(key->keyval >= GDK_A && key->keyval <= GDK_Z) ||
 			(key->keyval >= GDK_0 && key->keyval <= GDK_9)))
