diff --git a/rute.cpp b/rute.cpp
index 6365cd341811911adba7398c13cd4c8ab0ac53d4..d97283eb75dc0597ddda86ecae551a3999600aa0 100644
--- a/rute.cpp
+++ b/rute.cpp
@@ -67,7 +67,7 @@ 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
@@ -84,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
@@ -126,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";
         }
@@ -135,6 +136,7 @@ void Rute::lesData() {
         cout << "\nStoppested (entydig navn / tall / ENTER for å avslutte): ";
         getline(cin, navn); 
     }
+    cout << "\nOk, du angrer og ønsker ikke å legge til ny rute.\n";
 }
 
 /**
@@ -240,7 +242,8 @@ bool Rute::erTall(std::string nvn) {
 bool Rute::erListeGyldig(){
     if(stoppene.size() > 1){
         return true;
-    }else return false;
+    }
+    return false;
 }
 
 /**
@@ -248,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);