diff --git a/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/EImageEditorMouseClickMode.java b/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/EImageEditorMouseClickMode.java
new file mode 100644
index 0000000000000000000000000000000000000000..9a41c525028b0b58cd1f2d24a43bc5e3f9d953c6
--- /dev/null
+++ b/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/EImageEditorMouseClickMode.java
@@ -0,0 +1,5 @@
+package de.uniwue.mk.img.editor.widget;
+
+public enum EImageEditorMouseClickMode {FreeDrawingMode,PolygonResizingOrMovingMode,Regular_Mode;
+
+}
diff --git a/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/EImageEditorMouseMoveState.java b/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/EImageEditorMouseMoveState.java
new file mode 100644
index 0000000000000000000000000000000000000000..c933a1453a0ba951d186d1110272985833320c92
--- /dev/null
+++ b/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/EImageEditorMouseMoveState.java
@@ -0,0 +1,5 @@
+package de.uniwue.mk.img.editor.widget;
+
+public enum EImageEditorMouseMoveState {STATE_UPDATE_MOUSE_SELECTION, STATE_MOVE_FREEDRAWING_POINT, REGULAR;
+
+}
diff --git a/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/EImageEditorState.java b/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/EImageEditorState.java
deleted file mode 100644
index 3a811d33416f718941c27a3c492381b95568f5af..0000000000000000000000000000000000000000
--- a/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/EImageEditorState.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package de.uniwue.mk.img.editor.widget;
-
-public enum EImageEditorState {STATE_UPDATE_MOUSE_SELECTION, STATE_MOVE_POLYGON_POINT;
-
-}
diff --git a/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/ImageEditorMouseListener.java b/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/ImageEditorMouseListener.java
index b58259fea002de4150e69a0b89dcdb2bf4dd6143..dc0c740c79628c866cf597defbc9d842bd7ffda6 100644
--- a/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/ImageEditorMouseListener.java
+++ b/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/ImageEditorMouseListener.java
@@ -17,8 +17,8 @@ public class ImageEditorMouseListener implements MouseListener {
 
 		ImageEditorWidget editor = (ImageEditorWidget) e.getSource();
 		// update the in in polygonMode
-		if (!editor.isInPolygonDrawingMode) {
-			editor.isInPolygonDrawingMode = true;
+		if (!editor.isInFreeDrawingMode) {
+			editor.isInFreeDrawingMode = true;
 			if (editor.freeDrawingPoints.size() == 0) {
 				editor.freeDrawingPoints.add(editor.revertTransformForPoint(new Point(e.x, e.y)));
 			}
@@ -34,43 +34,44 @@ public class ImageEditorMouseListener implements MouseListener {
 
 		ImageEditorWidget editor = (ImageEditorWidget) e.getSource();
 		if (e.button == ImageEditorWidget.LEFT_BUTTON) {
-			editor.mouseDownPressed = true;
-			// java.awt.Point location =
-			// MouseInfo.getPointerInfo().getLocation();
 
+			// update the state
+			editor.mouseDownPressed = true;
 			// save the point in the actual original image
 			editor.pointMouseDown = editor.revertTransformForPoint(new Point(e.x, e.y));
 
-			if (editor.isInPolygonDrawingMode) {
+			EImageEditorMouseClickMode editorMouseMode = editor.determineMouseClickState();
+			if (editorMouseMode == EImageEditorMouseClickMode.FreeDrawingMode) {
 				editor.freeDrawingPoints.add(editor.pointMouseDown);
-			}
 
-			// now check if we closed a polygon
-			if (editor.freeDrawingPoints.size() > 2 && editor.isInPolygonDrawingMode) {
-				if (SWT2Dutil.pointOverlaps(editor.freeDrawingPoints.get(0),
-						editor.freeDrawingPoints.get(editor.freeDrawingPoints.size() - 1),
-						ImageEditorWidget.POINTS_SELECTION_RADIUS)) {
-					editor.isInPolygonDrawingMode = false;
-					editor.freeDrawingPoints.remove(editor.freeDrawingPoints.size() - 1);
-					editor.freeDrawingPoints.add(editor.freeDrawingPoints.get(0));
-
-					// open a dialog!! TODO
-					editor.polygonMap.put("Test", new EditorPolygon(
-							SWT2Dutil.polygonDrawingPointsToPointArray(editor.freeDrawingPoints), null));
+				// now check if we closed a polygon
+				if (editor.freeDrawingPoints.size() > 2) {
+					if (SWT2Dutil.pointOverlaps(editor.freeDrawingPoints.get(0),
+							editor.freeDrawingPoints.get(editor.freeDrawingPoints.size() - 1),
+							ImageEditorWidget.POINTS_SELECTION_RADIUS)) {
+						editor.isInFreeDrawingMode = false;
+						editor.freeDrawingPoints.remove(editor.freeDrawingPoints.size() - 1);
+						editor.freeDrawingPoints.add(editor.freeDrawingPoints.get(0));
+
+						// open a dialog!! TODO
+						editor.polygonMap.put("Test", new EditorPolygon(
+								SWT2Dutil.polygonDrawingPointsToPointArray(editor.freeDrawingPoints), null));
+					}
 				}
 			}
 
-			// if we are not in a mousedrawingmode we check if we can
+			// if we are in the regular mode we just update the selection
 			// update our selection
-			if (!editor.isInPolygonDrawingMode && !editor.inPolygonMovingOrResizingMode) {
+			if (editorMouseMode==EImageEditorMouseClickMode.Regular_Mode) {
 				updateSelection(e, editor);
 			}
 		}
 		if (e.button == ImageEditorWidget.RIGHT_BUTTON) {
 			// we leave the polygon drawing mode
-			editor.isInPolygonDrawingMode = false;
-			editor.freeDrawingCurrentPoint = null;
+			editor.isInFreeDrawingMode = false;
 
+			
+			//clear the freedrawing mode selection
 			if (editor.freeDrawingPointCurrentlyHovered != null && !editor.mouseDownPressed) {
 				// delete it all
 				editor.freeDrawingPoints.clear();
@@ -92,7 +93,7 @@ public class ImageEditorMouseListener implements MouseListener {
 			editor.mouseDownPressed = false;
 
 			// we need to update the selected polygonarrays
-			//aka end of a polygon seleced shift
+			// aka end of a polygon seleced shift
 			editor.pointArraysCurrentlyHovered.clear();
 			for (EditorPolygon pol : editor.getSelectedEditorPolygons()) {
 				editor.pointArraysCurrentlyHovered.add(pol.getPointArray());
@@ -116,6 +117,8 @@ public class ImageEditorMouseListener implements MouseListener {
 					editor.selectedEditorPolygons.add(polygon);
 					editor.pointArraysCurrentlyHovered.add(polygon.getPointArray());
 				}
+				
+				//TODO remove from selection again if it is already contained
 			}
 		}
 
diff --git a/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/ImageEditorMouseMoveListener.java b/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/ImageEditorMouseMoveListener.java
index fcbc5767b20f1c1a48ffd9a4975b70dbc0b678de..11624f578899d12a9d06185f26614cffb9cc99dd 100644
--- a/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/ImageEditorMouseMoveListener.java
+++ b/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/ImageEditorMouseMoveListener.java
@@ -1,5 +1,6 @@
 package de.uniwue.mk.img.editor.widget;
 
+import java.util.Collection;
 import java.util.List;
 
 import org.eclipse.swt.events.MouseEvent;
@@ -24,41 +25,71 @@ public class ImageEditorMouseMoveListener implements MouseMoveListener {
 		// we reset the cursor no matter what
 		editor.setCursor(ImageEditorWidget.cursorStandard);
 
-		Point inOriginialImage = editor.revertTransformForPoint(new Point(e.x, e.y));
-
-		// need for centerig the zoom around a given point
+		// update the current mouselocation
 		editor.currentMouseLocation = editor.revertTransformForPoint(new Point(e.x, e.y));
 
-		if (editor.determineEditorState() == EImageEditorState.STATE_UPDATE_MOUSE_SELECTION) {
+		//update all elements that are currently hovered
+		updateHoveredElements(editor);
+
+		EImageEditorMouseMoveState editorMouseMoveState = editor.determineEditorMouseMoveState();
+		if (editorMouseMoveState == EImageEditorMouseMoveState.STATE_UPDATE_MOUSE_SELECTION) {
 			updateMouseSelectionPolygon(e, editor);
 		}
+		
+		if(editorMouseMoveState==EImageEditorMouseMoveState.STATE_MOVE_FREEDRAWING_POINT){
+			// we allow its coordinates to change
+			editor.freeDrawingPointCurrentlyHovered.x = editor.currentMouseLocation.x;
+			editor.freeDrawingPointCurrentlyHovered.y = editor.currentMouseLocation.y;
+		}
+		
+		
+
+//		// if we want to draw
+//		if (!editor.mouseDownPressed && editor.isInFreeDrawingMode) {
+//			// check if we are hovering over the start point
+//			editor.setCursor(ImageEditorWidget.cursorHand);
+//			// we add a point
+//
+//		}
+//		if (!editor.isInFreeDrawingMode && !editor.freeDrawingPoints.isEmpty()) {
+//			updateCurrentPolygonMouseSelectionPoint(e, editor);
+//
+//		}
+//
+//		if (editor.selectedEditorPolygons.size() != 0 && !editor.isInFreeDrawingMode) {
+//			// check if we are hovering a polygon
+//			editor.inPolygonMovingOrResizingMode = false;
+//			moveOrResize(e, editor);
+//		}
 
-		// if we want to draw
-		if (!editor.mouseDownPressed && editor.isInPolygonDrawingMode) {
-			// check if we are hovering over the start point
-			editor.setCursor(ImageEditorWidget.cursorHand);
-			// we add a point
-			editor.freeDrawingCurrentPoint = inOriginialImage;
+		editor.invokeReload();
+	}
 
-		}
-		if (!editor.isInPolygonDrawingMode && !editor.freeDrawingPoints.isEmpty()) {
-			updateCurrentPolygonMouseSelectionPoint(e, editor);
+	private void updateHoveredElements(ImageEditorWidget editor) {
 
-		}
+		// hovered elements are either annotations
+		// TODO
 
-		if (editor.determineEditorState() == EImageEditorState.STATE_MOVE_POLYGON_POINT) {
-			// we allow its coordinates to change
-			editor.freeDrawingPointCurrentlyHovered.x = inOriginialImage.x;
-			editor.freeDrawingPointCurrentlyHovered.y = inOriginialImage.y;
+		// or points of the free drawing mode
+		editor.hoveredFreeDrawingPoints.clear();
+		List<Point> freeDrawingPoints = editor.freeDrawingPoints;
+
+		for (Point p : freeDrawingPoints) {
+			if (SWT2Dutil.pointOverlaps(editor.currentMouseLocation, p, ImageEditorWidget.POINTS_SELECTION_RADIUS)) {
+				editor.hoveredFreeDrawingPoints.add(p);
+			}
 		}
 
-		if (editor.selectedEditorPolygons.size() != 0 && !editor.isInPolygonDrawingMode) {
-			// check if we are hovering a polygon
-			editor.inPolygonMovingOrResizingMode = false;
-			moveOrResize(e, editor);
+		// or polygons of the editor
+		editor.hoveredEditorPolygons.clear();
+		 Collection<EditorPolygon> values = editor.polygonMap.values();
+
+		for (EditorPolygon pol : values) {
+			if (pol.contains(editor.currentMouseLocation)) {
+				editor.hoveredEditorPolygons.add(pol);
+			}
 		}
 
-		editor.invokeReload();
 	}
 
 	protected void moveOrResize(MouseEvent e, ImageEditorWidget editor) {
@@ -77,10 +108,9 @@ public class ImageEditorMouseMoveListener implements MouseMoveListener {
 				boolean inEdgeResizeMode = determineIfInEdgeResizeMode(actualinOrigin.x, actualinOrigin.y, poly);
 				boolean inNodeResizeMode = determineIfInNodeResizeMode(actualinOrigin.x, actualinOrigin.y, poly);
 				boolean inResize = (inEdgeResizeMode || inNodeResizeMode);
-				editor.isInResize = inResize;
-				if (inResize && editor.getSelectedEditorPolygons().size()==1) {
+				if (inResize && editor.getSelectedEditorPolygons().size() == 1) {
 
-					resizePolygon(inEdgeResizeMode, inNodeResizeMode,editor,actualinOrigin);
+					resizePolygon(inEdgeResizeMode, inNodeResizeMode, editor, actualinOrigin);
 				}
 				// we are in the translation mode and shift the
 				// whole
@@ -114,7 +144,8 @@ public class ImageEditorMouseMoveListener implements MouseMoveListener {
 		}
 	}
 
-	private void resizePolygon(boolean inEdgeResizeMode, boolean inNodeResizeMode,ImageEditorWidget editor, Point actualinOrigin) {
+	private void resizePolygon(boolean inEdgeResizeMode, boolean inNodeResizeMode, ImageEditorWidget editor,
+			Point actualinOrigin) {
 		if (inEdgeResizeMode) {
 			// find the according edge (consisting of 2 points and shift
 			// them
@@ -122,17 +153,17 @@ public class ImageEditorMouseMoveListener implements MouseMoveListener {
 
 		else if (inNodeResizeMode && editor.mouseDownPressed) {
 			// translate the node
-			if(editor.getSelectedEditorPolygons().get(0).getPointArray().length==8){
-				//sepcial case for a rectangle
+			if (editor.getSelectedEditorPolygons().get(0).getPointArray().length == 8) {
+				// sepcial case for a rectangle
 				editor.setCursor(ImageEditorWidget.cursorResizeNE);
-			}
-			else{
-				
+			} else {
+
 				editor.setCursor(ImageEditorWidget.cursorHand);
 				selectedResizeNode = actualinOrigin;
-				//also set the new polygon points
-				editor.getSelectedEditorPolygons().get(0).setPointArray(SWT2Dutil.pointsToPointArray(selectedPointArrayList));
-				
+				// also set the new polygon points
+				editor.getSelectedEditorPolygons().get(0)
+						.setPointArray(SWT2Dutil.pointsToPointArray(selectedPointArrayList));
+
 			}
 		}
 	}
@@ -177,14 +208,14 @@ public class ImageEditorMouseMoveListener implements MouseMoveListener {
 	}
 
 	protected void updateMouseSelectionPolygon(MouseEvent e, ImageEditorWidget editor) {
-		editor.pointMouseCurrently = editor.revertTransformForPoint(new Point(e.x, e.y));
+		editor.currentMouseLocation = editor.revertTransformForPoint(new Point(e.x, e.y));
 
 		// update the mouse selection polygon
-		int xLeft = Math.min(editor.pointMouseCurrently.x, editor.pointMouseDown.x);
-		int xRight = xLeft + Math.abs(editor.pointMouseCurrently.x - editor.pointMouseDown.x);
+		int xLeft = Math.min(editor.currentMouseLocation.x, editor.pointMouseDown.x);
+		int xRight = xLeft + Math.abs(editor.currentMouseLocation.x - editor.pointMouseDown.x);
 
-		int yTop = Math.min(editor.pointMouseCurrently.y, editor.pointMouseDown.y);
-		int yBottom = Math.max(editor.pointMouseCurrently.y, editor.pointMouseDown.y);
+		int yTop = Math.min(editor.currentMouseLocation.y, editor.pointMouseDown.y);
+		int yBottom = Math.max(editor.currentMouseLocation.y, editor.pointMouseDown.y);
 
 		int[] pointArray = new int[] { xLeft, yTop, xRight, yTop, xRight, yBottom, xLeft, yBottom };
 
diff --git a/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/ImageEditorWidget.java b/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/ImageEditorWidget.java
index 2e2859d0a9b98a72f8b0c59ab4f1084b2d3c472a..b391247b857f51e65f9384976760ebf023c17f36 100644
--- a/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/ImageEditorWidget.java
+++ b/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/ImageEditorWidget.java
@@ -72,22 +72,26 @@ public class ImageEditorWidget extends Canvas {
 	private ImageEditorInput editorInput;
 	private CAS openedCasView;
 
-	//the transform that stores all scaling and translation of the current image
+	// the transform that stores all scaling and translation of the current
+	// image
 	private AffineTransform transform = new AffineTransform();
 
 	// UI Elements
 	// the original image - never changed for the lifespan of its input!
 	private Image originalImage;
 
-
 	protected List<Point> freeDrawingPoints;
-	protected Point freeDrawingCurrentPoint;
 	protected Point freeDrawingPointCurrentlyHovered;
-	protected Point currentMouseLocation;
+
+	// the hovered selections
+	protected List<Point> hoveredFreeDrawingPoints;
+	protected List<FeatureStructure> hoveredAnnotations;
+	protected List<EditorPolygon> hoveredEditorPolygons;
+
 	// point where mouse was clicked last time (LMB)
 	protected Point pointMouseDown;
 	// current position of the mouse
-	protected Point pointMouseCurrently;
+	protected Point currentMouseLocation;
 
 	// stuff required for the logical behaviour
 	protected List<EditorPolygon> selectedEditorPolygons;
@@ -101,19 +105,15 @@ public class ImageEditorWidget extends Canvas {
 
 	// mouselistener specific
 
-
-
 	// those booleans define the logical behaviour in the editor
-	protected boolean isInPolygonDrawingMode = false;
+	protected boolean isInFreeDrawingMode = false;
 	protected boolean mouseDownPressed = false;
 	protected boolean inPolygonMovingOrResizingMode;
-	protected boolean isInResize;
 	private ImageEditorKeyListener keyListener;
 	private MouseListener mouseListener;
 	private MouseMoveListener mouseMoveListener;
 	private MouseWheelListener mouseWheelListener;
 	private ImageEditorWidgetPaintListener paintListener;
-	
 
 	// ====================STRUCT================
 	public ImageEditorWidget(Composite parent, int style) {
@@ -222,20 +222,6 @@ public class ImageEditorWidget extends Canvas {
 
 	}
 
-	protected EImageEditorState determineEditorState() {
-
-		if (mouseDownPressed && freeDrawingPointCurrentlyHovered == null && !inPolygonMovingOrResizingMode) {
-			return EImageEditorState.STATE_UPDATE_MOUSE_SELECTION;
-		}
-
-		else if (mouseDownPressed && freeDrawingPointCurrentlyHovered != null && !isInPolygonDrawingMode) {
-			return EImageEditorState.STATE_MOVE_POLYGON_POINT;
-		}
-		return null;
-	}
-
-
-
 	private void removeFormerListener() {
 		if (keyListener != null) {
 			this.removeKeyListener(keyListener);
@@ -283,8 +269,6 @@ public class ImageEditorWidget extends Canvas {
 		polygonMap.remove(key);
 	}
 
-
-
 	/* Initalize the scrollbar and register listeners. */
 	protected void initScrollBars() {
 		ScrollBar horizontal = getHorizontalBar();
@@ -328,7 +312,7 @@ public class ImageEditorWidget extends Canvas {
 		transform = af;
 		syncScrollBars();
 	}
-	
+
 	/**
 	 * Synchronize the scrollbar with the image. If the transform is out of
 	 * range, it will correct it. This function considers only following factors
@@ -416,6 +400,12 @@ public class ImageEditorWidget extends Canvas {
 		selectedEditorPolygons = new ArrayList<>();
 		pointArraysCurrentlyHovered = new LinkedList<>();
 
+		// init the currently hovered list
+		hoveredFreeDrawingPoints = new LinkedList<>();
+		hoveredAnnotations = new LinkedList<>();
+		hoveredEditorPolygons = new LinkedList<>();
+
+		// refresh the view
 		invokeReload();
 	}
 
@@ -478,12 +468,11 @@ public class ImageEditorWidget extends Canvas {
 		}
 
 	}
-	
+
 	public CAS getCas() {
 		return this.editorInput.getCas();
 	}
 
-
 	// ===============END LISTENER SPECIFIC===========================
 
 	// =============UTILITY (if not already in util=======================
@@ -504,4 +493,25 @@ public class ImageEditorWidget extends Canvas {
 		return this.transform;
 	}
 
+	// handle the logic of the editor here!!
+	public EImageEditorMouseClickMode determineMouseClickState() {
+
+		if (isInFreeDrawingMode)
+			return EImageEditorMouseClickMode.FreeDrawingMode;
+		return EImageEditorMouseClickMode.Regular_Mode;
+	}
+
+	protected EImageEditorMouseMoveState determineEditorMouseMoveState() {
+
+		if (mouseDownPressed && freeDrawingPointCurrentlyHovered == null
+				&& determineMouseClickState() == EImageEditorMouseClickMode.Regular_Mode) {
+			return EImageEditorMouseMoveState.STATE_UPDATE_MOUSE_SELECTION;
+		}
+
+		else if (mouseDownPressed && freeDrawingPointCurrentlyHovered != null && !isInFreeDrawingMode) {
+			return EImageEditorMouseMoveState.STATE_MOVE_FREEDRAWING_POINT;
+		}
+		return null;
+	}
+
 }
diff --git a/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/ImageEditorWidgetPaintListener.java b/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/ImageEditorWidgetPaintListener.java
index 0137336005dc53a8e9f6c6a6c9c743e75157eb1a..3e9dd2c6e200962e5fb9f20dd94c62696bcbe732 100644
--- a/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/ImageEditorWidgetPaintListener.java
+++ b/de.uniwue.mk.athen/bundles/de.uniwue.mk.img.editor/src/de/uniwue/mk/img/editor/widget/ImageEditorWidgetPaintListener.java
@@ -123,15 +123,15 @@ public class ImageEditorWidgetPaintListener implements PaintListener {
 		firstPoint = SWT2Dutil.transformPoint(editor.getTranform(), firstPoint);
 
 		// apply the transform
-		if (lastPoint != null && editor.freeDrawingCurrentPoint != null) {
+		if (lastPoint != null && editor.currentMouseLocation != null) {
 			Point transformedPolygonDrawingCurrent = SWT2Dutil.transformPoint(editor.getTranform(),
-					editor.freeDrawingCurrentPoint);
+					editor.currentMouseLocation);
 			gc.setAlpha(ALPHA_VERY_TRANSPARENT);
 			gc.drawLine(lastPoint.x, lastPoint.y, transformedPolygonDrawingCurrent.x,
 					transformedPolygonDrawingCurrent.y);
 
 			if (SWT2Dutil.pointOverlaps(
-					SWT2Dutil.transformPoint(editor.getTranform(), editor.freeDrawingCurrentPoint), firstPoint,
+					SWT2Dutil.transformPoint(editor.getTranform(), editor.currentMouseLocation), firstPoint,
 					ImageEditorWidget.POINTS_SELECTION_RADIUS)) {
 				Color colorTemp = gc.getBackground();
 				gc.setBackground(editor.polygonClosedColor);