diff --git a/dev/js/spec/tourSpec.js b/dev/js/spec/tourSpec.js
index e7ec308..3fb32f8 100644
--- a/dev/js/spec/tourSpec.js
+++ b/dev/js/spec/tourSpec.js
@@ -481,9 +481,8 @@
        break;
                      
        case totalSteps:
-       expect(document.querySelector(".introjs-donebutton").textContent).toEqual(loc.TOUR_seargo);
+       expect(document.querySelector(".introjs-donebutton").textContent).toEqual(loc.TOUR_ldoneSearch);
        expect(document.querySelector(".introjs-prevbutton").textContent).toEqual(loc.TOUR_lprev);
-       expect(document.querySelector(".introjs-nextbutton").classList.contains("introjs-disabled")).toBe(true);
        break;
        }
        searchTour.exit();
diff --git a/dev/js/src/loc/de.js b/dev/js/src/loc/de.js
index d81f138..914998d 100644
--- a/dev/js/src/loc/de.js
+++ b/dev/js/src/loc/de.js
@@ -42,6 +42,7 @@
   loc.TOUR_lprev = "Zurück";
   loc.TOUR_lnext = "Weiter";
   loc.TOUR_ldone = "Beenden";
+  loc.TOUR_ldoneSearch = "Suchen";
   
   //Guided Tour: Steps
   loc.TOUR_welc = "<span class = 'tgreeting'>Willkommen zur KorAP Tour! </span> " +
@@ -58,9 +59,10 @@
   loc.TOUR_vcStat1 = "Es besteht die Möglichkeit, die Korpusstatistik anzuzeigen.";
   loc.TOUR_vcStat2 = "Korpusstatistik";
   loc.TOUR_qlfield = "Auswahl der Suchanfragesprache: In KorAP können mehrere Suchanfragesprachen verwendet werden.";
-  loc.TOUR_glimpse = "Beim Wählen dieser Option wird festgelegt ob nur die ersten Treffer in zufälliger Reihenfolge ausgewählt werden.";
+  loc.TOUR_glimpse = "Beim Wählen dieser Option wird festgelegt ob nur die ersten Treffer in undefinierter Reihenfolge ausgewählt werden.";
   loc.TOUR_help = "Hilfe zu KorAP";
   loc.TOUR_seargo = "Suchanfrage starten";
+
   
   //Guided Tour: explain the result
   loc.TOUR_kwic = "Anzeige des Ergebnisses als KWIC (keyword in context).";
diff --git a/dev/js/src/tour/tours.js b/dev/js/src/tour/tours.js
index 8485ae6..6889520 100644
--- a/dev/js/src/tour/tours.js
+++ b/dev/js/src/tour/tours.js
@@ -15,7 +15,8 @@
   loc.TOUR_lprev = loc.TOUR_lprev || "Back";
   loc.TOUR_lnext = loc.TOUR_lnext || "Next";
   loc.TOUR_ldone = loc.TOUR_ldone || "Done";
-
+  loc.TOUR_ldoneSearch = loc.TOUR_ldoneSearch || "Search";
+  
   //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>" +
@@ -32,7 +33,7 @@
   loc.TOUR_vcStat2 = loc.TOUR_vcStat2 || "Corpus statistic";
   loc.TOUR_qlfield = loc.TOUR_qlfield|| "Selection of the query language: You can use KorAP with different query languages.";  
   loc.TOUR_help = loc.TOUR_help || "Help and information about KorAP.";
-  loc.TOUR_glimpse = loc.TOUR_glimpse || "Select this to show only the first hits in arbitrary order.";
+  loc.TOUR_glimpse = loc.TOUR_glimpse || "Select this to show only the first hits in undefined order.";
   loc.TOUR_seargo = loc.TOUR_seargo || "Start the search";
 
   //localization guided Tour gTshowResults
@@ -66,9 +67,16 @@
     gTstartSearch:function(elparam){
       let intro = introClass();
       intro.setOptions(labelOptions);
-      intro.setOption('doneLabel', loc.TOUR_seargo);
       intro.setOption('tooltipClass', 'gTstartSearch');
-     
+      intro.setOption('hideNext', true);
+      intro.setOption('hidePrev', true);
+      /*
+       * Sets button labels for the last step of the tour
+       * Because Kalamar is a multipage webapplication, this tours starts by
+       * completion the gTshowResults Tour. Therefore the label of the done button changed.
+        */
+      intro.setOption('doneLabel', loc.TOUR_ldoneSearch );
+      
       //for testing purposes
       if(elparam){
         doe = elparam;
@@ -148,7 +156,7 @@
       //pass in the Steps array created earlier
       intro.setOptions({steps: Steps});      
       this.testPrerequ(Steps, intro);
-      
+
       //changes before executing the single steps
       intro.onbeforechange(function(targetedElement){
         switch(targetedElement.id){
@@ -178,15 +186,6 @@
           }   
           break;   
           
-        /*
-        * Sets button labels for the last step of the tour
-        * Because Kalamar is a multipage webapplication, this tours starts by
-        * completion the gTshowResults Tour. Therefore, the skip-button is removed
-        * and the label of the done button changed.
-         */
-        case "qsubmit":
-            intro.setOption('hideNext', true);
-          break;
         } 
         
         if(this._currentStep == 8){
@@ -235,12 +234,16 @@
 
 
     /* Guided Tour to explain the different views of the results */     
-    gTshowResults: function(elparam){ 
+    gTshowResults: function(elparam){     
+    
+      let tourR = introClass();
+      tourR.setOption('hideNext', true);
+      tourR.setOption('hidePrev', true);
+      
       //for testing purposes
       if(elparam){
         doe = elparam;
       }
-      let tourR = introClass();
       let StepsSR = [
         //Step 1, intro_item 0
         {
diff --git a/dev/scss/main/introjs-ids.scss b/dev/scss/main/introjs-ids.scss
index 015e84e..01c751e 100644
--- a/dev/scss/main/introjs-ids.scss
+++ b/dev/scss/main/introjs-ids.scss
@@ -2,17 +2,27 @@
 
 .introjs-helperLayer {
     background-color:transparent;
-     }
+    }
  
 .introjs-tooltip.gTstartSearch{
     max-width: 500px;
-}
+    }
+
 
 .tgreeting {
     font-weight: bold;
     color: $darkest-orange;
-}
+    }
 
 .pfirstStep{
     width: 500px;
-}
+    }
+
+.introjs-donebutton {
+    float: right;
+    margin-left: 5px;
+    }
+ 
+.introjs-skipbutton{
+    color: $black;
+    }
