diff --git a/rute.cpp b/rute.cpp
index 99228e2cbcf6b5da6bebec52a769570786df4185..d97283eb75dc0597ddda86ecae551a3999600aa0 100644
--- a/rute.cpp
+++ b/rute.cpp
@@ -67,15 +67,16 @@ void Rute::lesData() {
     
     cout << "\nStoppested (entydig navn / tall / ENTER for å avslutte): ";
     getline(cin, navn); //TODO fortsette her
-    while (navn.size() != 0) {  //Kjør så lenge ikke blank/enter er trykket.
+    while (navn.size() > 0) {  //Kjør så lenge ikke blank/enter er trykket.
         navn = gStoppestederBase.byttBokstaver(navn); // Fjerner æøåÆØÅ
         
         if (erTall(navn)) {  // SJekker om navn kun består av tall
             stoppNr = stoi(navn); //Hvis kun tall, gjør om til int
             // Trenger en sjekk om stoppnr faktisk finnes, hvis det gjør det, gjør neste linje *
-            if(gStoppestederBase.finnesIndeks(stoppNr)){ //@see finnesIndeks, funker dette?
+            if(gStoppestederBase.finnesIndeks(stoppNr-1)){ //@see finnesIndeks, funker dette?
             navn = gStoppestederBase.hentNavnVhaIndeks(stoppNr); // Hent navn
-        }else cout << "Stopp finnes ikke!"; //kanskje gjøres til en loop?
+            }
+        //}else cout << "Stopp finnes ikke!"; //kanskje gjøres til en loop?
     }
         
         fNavn = gStoppestederBase.finnEntydig(navn); // Sjekker for entydighet
@@ -83,7 +84,7 @@ void Rute::lesData() {
         if (fNavn.size() > 0) { // Hvis entydig navn:
             cout << '\n' << fNavn << '\n';
             indeks = gStoppestederBase.hentIndeksVhaNavn(fNavn);
-            
+            if (!finnesStopp(indeks+1)) { // Hvis stopp ikke finnes fra før på ruten
             if (stoppene.size() > 0) { // Hvis ikke første stopp på ruten
                 nStopp = gStoppestederBase.finnDuplikat(fNavn);
                 if (nStopp->finnesNabo(naboIndeks+1)) { // Hvis nabo finnes fra før
@@ -94,6 +95,9 @@ void Rute::lesData() {
                     nyStopp = new Stopp(indeks+1, tidTilF);
                     stoppene.push_back(nyStopp); // Disse kan gjøres etter ?*
                     naboIndeks = indeks;
+                    cout << "\nTiden mellom stoppestedene er allerede registrert som "
+                         << tidTilF << " minutter.\n";
+                        
 
                 } else { // Hvis nabo ikke finnes fra før:
                     tidTilF = lesInt("Tid fra forrige stopp", 1, 10); // Leser tid til forrige nabo
@@ -122,7 +126,8 @@ void Rute::lesData() {
             //naboIndeks = indeks; // Setter nabos indeks til å være forrige indeks
             //tidTilE = tidTilF; // Setter tid til neste stopp, til å være egen tid
             fStopp = nStopp; // Setter forrige stopp til å bli nåværende stopp
-
+            } else
+                cout << "\nStoppet er allerede registrert på ruten!\n";
         } else { // Hvis ikke entydig:
             cout << "\nIkke funnet (den entydige) stoppestedet!\n";
         }
@@ -130,9 +135,8 @@ void Rute::lesData() {
         // Forsøker å lese evt. ny eller korrekt stopp:
         cout << "\nStoppested (entydig navn / tall / ENTER for å avslutte): ";
         getline(cin, navn); 
-
-
     }
+    cout << "\nOk, du angrer og ønsker ikke å legge til ny rute.\n";
 }
 
 /**
@@ -236,9 +240,10 @@ bool Rute::erTall(std::string nvn) {
  * @return false 
  */
 bool Rute::erListeGyldig(){
-    if(stoppene.size() < 1){
+    if(stoppene.size() > 1){
         return true;
-    }else return false;
+    }
+    return false;
 }
 
 /**
@@ -246,5 +251,17 @@ bool Rute::erListeGyldig(){
  * 
  */
 void Rute::slettData(){
-    stoppene.pop_back();
+    stoppene.clear();
+}
+
+/**
+ * @brief finnesStopp(...)
+ * 
+ */
+bool Rute::finnesStopp(const int nr) {
+    for (auto it = stoppene.begin(); it != stoppene.end(); it++) {
+        if ((*it)->hentNr() == nr)
+            return true;
+    }
+    return false;
 }
\ No newline at end of file
diff --git a/rute.h b/rute.h
index 2e64d91267d2e790a2a6d09dec3204fe5d421f12..6e95c2ccabe892dcf21c3f4a584dbd133da39d82 100644
--- a/rute.h
+++ b/rute.h
@@ -35,6 +35,7 @@ class Rute {
         Rute(std::ifstream & inn);
         bool erTall(std::string nvn);
         bool erListeGyldig();
+        bool finnesStopp(const int nr);
         virtual void lesData();
         virtual void skrivData() const;
         virtual void skrivTilFil(std::ofstream & ut);
diff --git a/ruter.cpp b/ruter.cpp
index ff902f9be6d6f26e32e0ed8fba2aa1b27ee0af13..4f43e3612ebc475c4be6b119eb0d465682e9d698 100644
--- a/ruter.cpp
+++ b/ruter.cpp
@@ -103,8 +103,10 @@ void Ruter::nyRute() {
         // En funksjon for å sjekke om ruten er gyldig (list.size() > 1, return true)
         // Hvis ruten er gyldig, legg til i mappet
         // Hvis ugyldig rute, rydd opp i pekere *
-        if(!nyRute->erListeGyldig()){
+        if(nyRute->erListeGyldig()){
             rutene[ruteNr] = nyRute;
+            cout << "\nNy rute er lagt til:\n";
+            ruteBeskrivelse(ruteNr);
         }else nyRute->slettData();
 
 
@@ -126,6 +128,11 @@ void Ruter::ruteBeskrivelse() {
         cout << "\nRuten med dette rutenr eksisterer ikke..\n";
 }
 
+void Ruter::ruteBeskrivelse(const int ruteNr){
+    auto it = rutene.find(ruteNr);
+    it->second->skrivBeskrivelse();
+}
+
 /**
  * ruteTabell()
  */
diff --git a/ruter.h b/ruter.h
index 646ab6f26917508fcc1d1d9f7bc1f44b98947c05..33d7ea7aa22aed0f171afa378712478d1e357406 100644
--- a/ruter.h
+++ b/ruter.h
@@ -22,6 +22,7 @@ class Ruter {
         void lesFraFil();
         void nyRute();
         void ruteBeskrivelse();
+        void ruteBeskrivelse(const int ruteNr);
         void ruteTabell();
         void skrivAlle();
         void skrivMeny();
diff --git a/stoppesteder.cpp b/stoppesteder.cpp
index d8f4e27afdf2ae12f767d563e52f9802d7ba516d..9e4017e9491fcfe50dc31b1b8bef2b246231805c 100644
--- a/stoppesteder.cpp
+++ b/stoppesteder.cpp
@@ -278,13 +278,15 @@ bool Stoppesteder::tom() {
  * @brief Sjekker om indeks nummer finnes i vektor.
  * 
  * @param nr - nr fra brukeren.
- * @return true 
- * @return false 
+ * @return true - hvis nr er i vektoren
+ * @return false -hvis nr ikke er i vektoren
  */
 bool Stoppesteder::finnesIndeks(const int nr){
-    for(int i=0; i < stopper.size(); i++){  //går igjennom stopper vektoren
-        if(i+1==nr){    //+1 fordi tallet som vises for brukeren er +1 fra indeksen.
-            return true;
-        }else return false;
+    if (nr <= stopper.size()) {
+        for(int i=0; i < stopper.size(); i++){  //går igjennom stopper vektoren fra med sent tall
+            if(i==nr)    //hopper ut hvis tall er funnet
+                return true;
+        }
     }
+    return false;
 }
\ No newline at end of file