diff --git a/dev/js/spec/tourSpec.js b/dev/js/spec/tourSpec.js
index 3fb32f8..afba72a 100644
--- a/dev/js/spec/tourSpec.js
+++ b/dev/js/spec/tourSpec.js
@@ -4,7 +4,7 @@
  * @author Helge Stallkamp
  */
 
-define(['tour/tours', 'vc', 'session', 'match', 'hint',  'hint/foundries/cnx', 'selectMenu'], function(tourClass, vcClass, sessionClass, matchClass, hintClass, hintArray, selectMenuClass){
+define(['tour/tours', 'vc', 'session', 'match', 'hint',  'hint/foundries/cnx', 'selectMenu', 'loc/dereko'], function(tourClass, vcClass, sessionClass, matchClass, hintClass, hintArray, selectMenuClass){
   const loc   = KorAP.Locale;
   
   var introKorAP =
diff --git a/dev/js/src/loc/de.js b/dev/js/src/loc/de.js
index 914998d..b01769a 100644
--- a/dev/js/src/loc/de.js
+++ b/dev/js/src/loc/de.js
@@ -46,10 +46,7 @@
   
   //Guided Tour: Steps
   loc.TOUR_welc = "<span class = 'tgreeting'>Willkommen zur KorAP Tour! </span> " +
-  "<p class='pfirstStep'> Hier zeigen wir Ihnen einige wichtige Funktionalitäten von KorAP. </p>" + 
-  "<p> Bitte beachten sie: Haben sie bereits eine Suchanfrage oder ein Korpus definiert," +
-  "werden diese während der Tour gelöscht. Falls Sie das nicht wollen, können sie die Tour jetzt mit <code>" +  
-  loc.TOUR_lskip + "</code> beenden.</p>"; 
+  "<p class='pfirstStep'> Hier zeigen wir Ihnen einige wichtige Funktionalitäten von KorAP. </p>"; 
   loc.TOUR_sear1 = "Geben Sie die Suchanfrage hier ein.";
   loc.TOUR_sear2 = "Zum Beispiel die Suche nach '"+ loc.TOUR_Qexample +  "'.";
   loc.TOUR_searAnnot ="Für die Suche nach Annotationen steht der Annotationsassistent zur Verfügung.";
diff --git a/dev/js/src/loc/dereko.js b/dev/js/src/loc/dereko.js
index b90e8c4..18e3c85 100644
--- a/dev/js/src/loc/dereko.js
+++ b/dev/js/src/loc/dereko.js
@@ -18,4 +18,6 @@
       'value' : 'GOE/AGI',   
     };
   
+  loc.TOUR_Relations = "corenlp/c";
+
 });
diff --git a/dev/js/src/tour/tours.js b/dev/js/src/tour/tours.js
index 6889520..fcccdf7 100644
--- a/dev/js/src/tour/tours.js
+++ b/dev/js/src/tour/tours.js
@@ -19,10 +19,7 @@
   
   //localization guided tour gTstartSearch
   loc.TOUR_welc = loc.TOUR_welc || "<span class='tgreeting'> Welcome to our guided tour!</span>" +
-  		                           "<p class='pfirstStep'> This tour should give you a quick introduction to KorAP. </p>" +
-  		                           "<p> Please note, that if you already defined a corpus or query, these definitions are deleted during the guided tour. " +
-  		                           "If you don't want that, you can stop the tour now with <code>" +  
-  		                           loc.TOUR_lskip + "</code>. </p> </div>"; 
+  		                           "<p class='pfirstStep'> This tour should give you a quick introduction to KorAP. </p>"; 
   loc.TOUR_sear1 = loc.TOUR_sear1 || "Enter your search enquiry here.";
   loc.TOUR_sear2 = loc.TOUR_sear2 || "For example the search for '" +  loc.TOUR_Qexample + "'.";
   loc.TOUR_searAnnot = loc.TOUR_searAnnot || "Annotation helper";
@@ -345,7 +342,13 @@
       
         if(this._currentStep == 8){
           doe.querySelector(".tree").click();
-          document.querySelectorAll(".button-group-list")[0].querySelectorAll('li')[1].click();
+          let collect =  document.querySelectorAll(".button-group-list")[0].querySelectorAll('li');
+          for(let i = 0;  i < collect.length; i++){
+            if (collect[i].innerText == loc.TOUR_Relations) {
+              collect[i].click();
+              break;
+            }
+          }
           tourR._introItems[8].element = doe.querySelector(".view.relations");
         }
       });       
