diff --git a/core/src/cz/nic/tablexia/screen/createuser/FormScreen.java b/core/src/cz/nic/tablexia/screen/createuser/FormScreen.java
index 8e429ef5870a045605a7eb8d0b811609e803f40e..89d224be78bd76a10abe5c067a8b1e51cb701c2a 100644
--- a/core/src/cz/nic/tablexia/screen/createuser/FormScreen.java
+++ b/core/src/cz/nic/tablexia/screen/createuser/FormScreen.java
@@ -99,17 +99,20 @@ public class FormScreen extends AbstractAutoloadTablexiaScreen<Void> {
         selector.addActor(steps[2] = ScaleUtil.createImageWidthPosition(getTexture("switch_right"), getStage().getWidth() * 0.035f, 0, 0));
         selector.setPosition(getStage().getWidth() * 0.735f, getStage().getWidth() * 0.169f);
         group.addActor(selector);
-        DragSwitchListener sl =new DragSwitchListener(selector, getStage().getWidth() * 0.71f, getStage().getWidth() * 0.71f + getStage().getWidth() * 0.055f, getStage().getWidth() * 0.71f + getStage().getWidth() * 0.027f);
+        float middle = getStage().getWidth() * 0.71f + getStage().getWidth() * 0.027f;
+        DragSwitchListener sl =new DragSwitchListener(selector, getStage().getWidth() * 0.71f, getStage().getWidth() * 0.71f + getStage().getWidth() * 0.055f, middle);
         selector.addListener(sl);
         sl.setSwitchMovedListener(new DragSwitchListener.SwitchMovedListener() {
             @Override
             public void movedToStep(int step) {
-                for(Image im : steps){
+                for (Image im : steps) {
                     im.setVisible(false);
                 }
                 steps[step].setVisible(true);
             }
         });
+        sl.switchToStep(1);
+        sl.setDisabledPoint(middle);
 
         // TODO pencil and stamp layers
         group.addActor(pen = ScaleUtil.createImageWidthPosition(getTexture("pencil_dropped"), getStage().getWidth() * 0.2f, getStage().getWidth() * 0.85f, getStage().getWidth() * -0.13f));
diff --git a/core/src/cz/nic/tablexia/util/listener/DragSwitchListener.java b/core/src/cz/nic/tablexia/util/listener/DragSwitchListener.java
index 7ef828eafef9aca0ae657e9253e41ef599addf29..824909a6b33486b6e7f7257bad0cd61daaa226a7 100644
--- a/core/src/cz/nic/tablexia/util/listener/DragSwitchListener.java
+++ b/core/src/cz/nic/tablexia/util/listener/DragSwitchListener.java
@@ -17,12 +17,13 @@ public class DragSwitchListener extends InputListener {
     private final Actor actor;
     private SwitchMovedListener switchMovedListener;
     private SwitchSelectedListener switchSelectedListener;
+    private Float disabledPoint;
 
-    public DragSwitchListener(Actor actor, float minX, float maxX, float... snadPoints) {
+    public DragSwitchListener(Actor actor, float minX, float maxX, float... snapPoints) {
         this.actor = actor;
         this.minX = minX;
         this.maxX = maxX;
-        this.snadPoints = snadPoints == null ? new float[0] : snadPoints;
+        this.snadPoints = snapPoints == null ? new float[0] : snapPoints;
     }
 
     // TODO add callback method
@@ -44,8 +45,8 @@ public class DragSwitchListener extends InputListener {
         float bx = actor.getX() + (x - grabX);
         if (bx > minX && bx < maxX) {
             actor.setPosition(bx, actor.getY());
-            if(switchMovedListener != null){
-                switchMovedListener.movedToStep(getStep());
+            if (switchMovedListener != null) {
+                switchMovedListener.movedToStep(getStep(true));
             }
         }
         event.stop();
@@ -54,15 +55,18 @@ public class DragSwitchListener extends InputListener {
     @Override
     public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
         super.touchUp(event, x, y, pointer, button);
-        actor.addAction(Actions.moveTo(getClosestValue(), actor.getY()));
-        if(switchSelectedListener != null){
-            switchSelectedListener.stepSelected(getStep());
+        actor.addAction(Actions.moveTo(getClosestValue(false), actor.getY()));
+        if (switchMovedListener != null) {
+            switchMovedListener.movedToStep(getStep(false));
+        }
+        if (switchSelectedListener != null) {
+            switchSelectedListener.stepSelected(getStep(false));
         }
         event.stop();
     }
 
-    private int getStep() {
-        float closest = getClosestValue();
+    private int getStep(boolean useDisabled) {
+        float closest = getClosestValue(useDisabled);
 
         for (int i = 0; i < snadPoints.length; i++) {
             if (snadPoints[i] == closest) {
@@ -72,12 +76,34 @@ public class DragSwitchListener extends InputListener {
         return closest == minX ? 0 : snadPoints.length + 1;
     }
 
-    private float getClosestValue() {
+    private float getX(int step) {
+        if (step == 0) {
+            return minX;
+        } else if (step <= snadPoints.length) {
+            return snadPoints[step - 1];
+        }
+        return maxX;
+    }
+
+    public void switchToStep(int step) {
+        actor.setX(getX(step));
+        if (switchMovedListener != null) {
+            switchMovedListener.movedToStep(getStep(true));
+        }
+        if (switchSelectedListener != null) {
+            switchSelectedListener.stepSelected(getStep(true));
+        }
+    }
+
+    private float getClosestValue(boolean useDisabled) {
         float left = minX;
         float right = maxX;
 
         // find closest snap points
         for (float snap : snadPoints) {
+            if (!useDisabled && disabledPoint != null && snap == disabledPoint.floatValue()) {
+                continue;
+            }
             if (snap > actor.getX() && ((snap - actor.getX()) < (right - actor.getX()))) {
                 right = snap;
             } else if (snap <= actor.getX() && ((actor.getX() - snap) < (actor.getX() - left))) {
@@ -92,6 +118,10 @@ public class DragSwitchListener extends InputListener {
         return switchMovedListener;
     }
 
+    public void setDisabledPoint(Float disabledPoint) {
+        this.disabledPoint = disabledPoint;
+    }
+
     public void setSwitchMovedListener(SwitchMovedListener switchMovedListener) {
         this.switchMovedListener = switchMovedListener;
     }