Index: /CKEditor/branches/features/toolbargroup2/_source/plugins/toolbar/plugin.js
===================================================================
--- /CKEditor/branches/features/toolbargroup2/_source/plugins/toolbar/plugin.js	(revision 6713)
+++ /CKEditor/branches/features/toolbargroup2/_source/plugins/toolbar/plugin.js	(revision 6714)
@@ -66,6 +66,10 @@
 				switch ( keystroke )
 				{
+					case 9 :					// TAB
+					case CKEDITOR.SHIFT + 9 :	// SHIFT + TAB
+						
+						return false;
+
 					case rtl ? 37 : 39 :					// RIGHT-ARROW
-					case 9 :					// TAB
 						do
 						{
@@ -73,19 +77,23 @@
 							next = item.next;
 
+							// If it's the last item, cycle to the first one.
 							if ( !next )
-							{
-								nextToolGroup = item.toolbar.next;
-								groupItemsCount = nextToolGroup && nextToolGroup.items.length;
-
-								// Bypass the empty toolgroups.
-								while ( groupItemsCount === 0 )
-								{
-									nextToolGroup = nextToolGroup.next;
-									groupItemsCount = nextToolGroup && nextToolGroup.items.length;
-								}
-
-								if ( nextToolGroup )
-									next = nextToolGroup.items[ 0 ];
-							}
+								next = item.toolbar.items[ 0 ];
+
+//							if ( !next )
+//							{
+//								nextToolGroup = item.toolbar.next;
+//								groupItemsCount = nextToolGroup && nextToolGroup.items.length;
+
+//								// Bypass the empty toolgroups.
+//								while ( groupItemsCount === 0 )
+//								{
+//									nextToolGroup = nextToolGroup.next;
+//									groupItemsCount = nextToolGroup && nextToolGroup.items.length;
+//								}
+
+//								if ( nextToolGroup )
+//									next = nextToolGroup.items[ 0 ];
+//							}
 
 							item = next;
@@ -103,5 +111,4 @@
 
 					case rtl ? 39 : 37 :					// LEFT-ARROW
-					case CKEDITOR.SHIFT + 9 :	// SHIFT + TAB
 						do
 						{
@@ -109,19 +116,23 @@
 							next = item.previous;
 
+							// If it's the first item, cycle to the last one.
 							if ( !next )
-							{
-								nextToolGroup = item.toolbar.previous;
-								groupItemsCount = nextToolGroup && nextToolGroup.items.length;
-
-								// Bypass the empty toolgroups.
-								while ( groupItemsCount === 0 )
-								{
-									nextToolGroup = nextToolGroup.previous;
-									groupItemsCount = nextToolGroup && nextToolGroup.items.length;
-								}
-
-								if ( nextToolGroup )
-									next = nextToolGroup.items[ groupItemsCount - 1 ];
-							}
+								next = item.toolbar.items[ item.toolbar.items.length - 1 ];
+
+//							if ( !next )
+//							{
+//								nextToolGroup = item.toolbar.previous;
+//								groupItemsCount = nextToolGroup && nextToolGroup.items.length;
+
+//								// Bypass the empty toolgroups.
+//								while ( groupItemsCount === 0 )
+//								{
+//									nextToolGroup = nextToolGroup.previous;
+//									groupItemsCount = nextToolGroup && nextToolGroup.items.length;
+//								}
+
+//								if ( nextToolGroup )
+//									next = nextToolGroup.items[ groupItemsCount - 1 ];
+//							}
 
 							item = next;
