Index: src/Actions/SelectionAction/Atoms/AtomByIdAction.cpp
===================================================================
--- src/Actions/SelectionAction/Atoms/AtomByIdAction.cpp	(revision 1259df9500410b59c3a56d9cf8d54624b53f97da)
+++ src/Actions/SelectionAction/Atoms/AtomByIdAction.cpp	(revision f01769bf04baacedde88443ce16ab2f2dd809f30)
@@ -65,5 +65,6 @@
   undoatomids.reserve(atomids.size());
   for (atomids_t::const_iterator iter = atomids.begin(); iter != atomids.end(); ++iter) {
-    const atom *Walker = World::getInstance().getAtom(AtomById(*iter));
+    const atom *Walker = const_cast<const World &>(World::getInstance()).
+        getAtom(AtomById(*iter));
     if (Walker != NULL) {
       if (!World::getInstance().isSelected(Walker)) {
@@ -104,8 +105,6 @@
 
   for (atomids_t::const_iterator iter = state->undoatomids.begin();
-      iter != state->undoatomids.end(); ++iter) {
-    const atom *Walker = World::getInstance().getAtom(AtomById(*iter));
-    World::getInstance().unselectAtom(Walker);
-  }
+      iter != state->undoatomids.end(); ++iter)
+    World::getInstance().unselectAllAtoms(AtomById(*iter));
 
   return ActionState::ptr(_state);
@@ -116,8 +115,6 @@
 
   for (atomids_t::const_iterator iter = state->undoatomids.begin();
-      iter != state->undoatomids.end(); ++iter) {
-    const atom *Walker = World::getInstance().getAtom(AtomById(*iter));
-    World::getInstance().selectAtom(Walker);
-  }
+      iter != state->undoatomids.end(); ++iter)
+    World::getInstance().selectAllAtoms(AtomById(*iter));
 
   return ActionState::ptr(_state);
Index: src/Actions/SelectionAction/Atoms/AtomByOrderAction.cpp
===================================================================
--- src/Actions/SelectionAction/Atoms/AtomByOrderAction.cpp	(revision 1259df9500410b59c3a56d9cf8d54624b53f97da)
+++ src/Actions/SelectionAction/Atoms/AtomByOrderAction.cpp	(revision f01769bf04baacedde88443ce16ab2f2dd809f30)
@@ -54,5 +54,6 @@
 /** =========== define the function ====================== */
 ActionState::ptr SelectionAtomByOrderAction::performCall() {
-  const atom *Walker = World::getInstance().getAtom(AtomByOrder(params.order.get()));
+  const atom *Walker = const_cast<const World &>(World::getInstance()).
+      getAtom(AtomByOrder(params.order.get()));
   if (Walker != NULL) {
     if (!World::getInstance().isSelected(Walker)) {
@@ -73,6 +74,5 @@
   SelectionAtomByOrderState *state = assert_cast<SelectionAtomByOrderState*>(_state.get());
 
-  const atom *Walker = World::getInstance().getAtom(AtomById(state->WalkerId));
-  World::getInstance().unselectAtom(Walker);
+  World::getInstance().unselectAllAtoms(AtomById(state->WalkerId));
 
   return ActionState::ptr(_state);
@@ -82,6 +82,5 @@
   SelectionAtomByOrderState *state = assert_cast<SelectionAtomByOrderState*>(_state.get());
 
-  const atom *Walker = World::getInstance().getAtom(AtomById(state->WalkerId));
-  World::getInstance().selectAtom(Walker);
+  World::getInstance().selectAllAtoms(AtomById(state->WalkerId));
 
   return ActionState::ptr(_state);
Index: src/Actions/SelectionAction/Atoms/NotAtomByIdAction.cpp
===================================================================
--- src/Actions/SelectionAction/Atoms/NotAtomByIdAction.cpp	(revision 1259df9500410b59c3a56d9cf8d54624b53f97da)
+++ src/Actions/SelectionAction/Atoms/NotAtomByIdAction.cpp	(revision f01769bf04baacedde88443ce16ab2f2dd809f30)
@@ -65,5 +65,6 @@
   undoatomids.reserve(atomids.size());
   for (atomids_t::const_iterator iter = atomids.begin(); iter != atomids.end(); ++iter) {
-    const atom *Walker = World::getInstance().getAtom(AtomById(*iter));
+    const atom *Walker = const_cast<const World &>(World::getInstance()).
+        getAtom(AtomById(*iter));
     if (Walker != NULL) {
       if (World::getInstance().isSelected(Walker)) {
@@ -104,8 +105,6 @@
 
   for (atomids_t::const_iterator iter = state->undoatomids.begin();
-      iter != state->undoatomids.end(); ++iter) {
-    const atom *Walker = World::getInstance().getAtom(AtomById(*iter));
-    World::getInstance().selectAtom(Walker);
-  }
+      iter != state->undoatomids.end(); ++iter)
+    World::getInstance().selectAllAtoms(AtomById(*iter));
 
   return ActionState::ptr(_state);
@@ -116,8 +115,6 @@
 
   for (atomids_t::const_iterator iter = state->undoatomids.begin();
-      iter != state->undoatomids.end(); ++iter) {
-    const atom *Walker = World::getInstance().getAtom(AtomById(*iter));
-    World::getInstance().unselectAtom(Walker);
-  }
+      iter != state->undoatomids.end(); ++iter)
+    World::getInstance().unselectAllAtoms(AtomById(*iter));
 
   return ActionState::ptr(_state);
Index: src/Actions/SelectionAction/Atoms/NotAtomByOrderAction.cpp
===================================================================
--- src/Actions/SelectionAction/Atoms/NotAtomByOrderAction.cpp	(revision 1259df9500410b59c3a56d9cf8d54624b53f97da)
+++ src/Actions/SelectionAction/Atoms/NotAtomByOrderAction.cpp	(revision f01769bf04baacedde88443ce16ab2f2dd809f30)
@@ -54,5 +54,6 @@
 /** =========== define the function ====================== */
 ActionState::ptr SelectionNotAtomByOrderAction::performCall() {
-  const atom * Walker = World::getInstance().getAtom(AtomByOrder(params.order.get()));
+  const atom * Walker = const_cast<const World &>(World::getInstance()).
+      getAtom(AtomByOrder(params.order.get()));
   if (Walker != NULL) {
     if (World::getInstance().isSelected(Walker)) {
@@ -73,6 +74,5 @@
   SelectionNotAtomByOrderState *state = assert_cast<SelectionNotAtomByOrderState*>(_state.get());
 
-  const atom * Walker = World::getInstance().getAtom(AtomById(state->WalkerId));
-  World::getInstance().selectAtom(Walker);
+  World::getInstance().selectAllAtoms(AtomById(state->WalkerId));
 
   return ActionState::ptr(_state);
@@ -82,6 +82,5 @@
   SelectionNotAtomByOrderState *state = assert_cast<SelectionNotAtomByOrderState*>(_state.get());
 
-  const atom * Walker = World::getInstance().getAtom(AtomById(state->WalkerId));
-  World::getInstance().unselectAtom(Walker);
+  World::getInstance().unselectAllAtoms(AtomById(state->WalkerId));
 
   return ActionState::ptr(_state);
