diff --git a/ruter.cpp b/ruter.cpp
index ce2de7ba4212c09ac843d0bb98dc8a19b7dda951..dce79dc93b262f6b7480b33a3192932838e050d7 100644
--- a/ruter.cpp
+++ b/ruter.cpp
@@ -23,6 +23,7 @@ Ruter::Ruter() {
  */
 Ruter::~Ruter() {
     skrivTilFil();
+    ryddOppMinne();
 }
 
 /**
@@ -278,3 +279,14 @@ void Ruter::skrivTilFil() {
         fil << "X" << '\n';
     }
 }
+
+/**
+ * Fjerner rute pekere fra alle ruter map'et.
+ *
+ */
+void Ruter::ryddOppMinne() {
+    for (auto it = alleRuter.begin(); it != alleRuter.end();) {
+        delete it->second;
+        it = alleRuter.erase(it);
+    }
+}
\ No newline at end of file
diff --git a/ruter.h b/ruter.h
index e72458fd4ab15dc0c62eafa7615e142482900b4b..eba05654cfdd8f977ad63d3984149a0f4405858b 100644
--- a/ruter.h
+++ b/ruter.h
@@ -39,6 +39,7 @@ class Ruter {
     int lesRute();
     void lesFraFil();
     void skrivTilFil();
+    void ryddOppMinne();
 };
 
 #endif  //__RUTER_H
\ No newline at end of file