diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editor/DiagramKeyHandler.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editor/DiagramKeyHandler.java
index 3dbf12bfb555b2ffb227c3deec334f7f965a0257..6fdd186f3818b3f17f6fdc8e780970dc17c6aa16 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editor/DiagramKeyHandler.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editor/DiagramKeyHandler.java
@@ -38,11 +38,14 @@ import org.eclipse.gef.KeyHandler;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.KeyEvent;
 import org.fortiss.tooling.base.model.layout.Angle;
+import org.fortiss.tooling.base.model.layout.Dimension;
 import org.fortiss.tooling.base.model.layout.EOrientation;
 import org.fortiss.tooling.base.model.layout.ILayoutedModelElement;
+import org.fortiss.tooling.base.model.layout.LayoutFactory;
 import org.fortiss.tooling.base.model.layout.OffsetOrientation;
 import org.fortiss.tooling.base.ui.editpart.PositionedEditPartBase;
 import org.fortiss.tooling.base.ui.editpart.StickyConnectorEditPartBase;
+import org.fortiss.tooling.base.utils.LayoutDataUtils;
 import org.fortiss.tooling.kernel.extension.data.ITopLevelElement;
 import org.fortiss.tooling.kernel.service.IPersistencyService;
 
@@ -57,7 +60,7 @@ import org.fortiss.tooling.kernel.service.IPersistencyService;
  * @author aravantinos
  * @author $Author$
  * @version $Rev$
- * @ConQAT.Rating YELLOW Hash: 574C2BF5E507B24ED6AC4D09E6EEDFD3
+ * @ConQAT.Rating YELLOW Hash: 60245690315B7D65B464ADC89AC541B9
  */
 public class DiagramKeyHandler extends KeyHandler {
 
@@ -155,15 +158,27 @@ public class DiagramKeyHandler extends KeyHandler {
 						OffsetOrientation oo =
 								getOffsetOrientation(ep.getModel(), CONNECTOR_OFFSET_ORIENTATION);
 						if(oo != null) {
+							Dimension containerDim = LayoutFactory.eINSTANCE.createDimension();
+							if(ep.getModel().eContainer() instanceof ILayoutedModelElement) {
+								ILayoutedModelElement layoutedContainer =
+										(ILayoutedModelElement)ep.getModel().eContainer();
+								containerDim = LayoutDataUtils.getNodeSize(layoutedContainer);
+							}
 							if((oo.getOrientation() == EOrientation.EAST || oo.getOrientation() == EOrientation.WEST) &&
 									(event.keyCode == SWT.ARROW_DOWN || event.keyCode == SWT.ARROW_UP)) {
-								setStickyConnectorLayoutData(ep.getModel(), oo.getOrientation(),
-										oo.getOffset() + scrollCoeff.y);
+								int newY = oo.getOffset() + scrollCoeff.y;
+								if(newY >= 0 && newY < containerDim.getHeight() - DEFAULT_GRID_SIZE) {
+									setStickyConnectorLayoutData(ep.getModel(),
+											oo.getOrientation(), newY);
+								}
 							} else if((oo.getOrientation() == EOrientation.NORTH || oo
 									.getOrientation() == EOrientation.SOUTH) &&
 									(event.keyCode == SWT.ARROW_LEFT || event.keyCode == SWT.ARROW_RIGHT)) {
-								setStickyConnectorLayoutData(ep.getModel(), oo.getOrientation(),
-										oo.getOffset() + scrollCoeff.x);
+								int newX = oo.getOffset() + scrollCoeff.x;
+								if(newX >= 0 && newX < containerDim.getWidth() - DEFAULT_GRID_SIZE) {
+									setStickyConnectorLayoutData(ep.getModel(),
+											oo.getOrientation(), newX);
+								}
 							}
 						} else {
 							Angle angle = getConnectorAngle(ep.getModel());