diff --git a/javascript/buffer.js b/javascript/buffer.js
index f1378859efa67c6c3499255d81d1a26c56012995..8521b391f426f094c59cee21380eeeaeda9c56a4 100644
--- a/javascript/buffer.js
+++ b/javascript/buffer.js
@@ -36,6 +36,11 @@ function makeBuffer() {
         var buffer = turf.buffer(layer, distance, {units: "meters"}); // Lager buffer
         
         if (document.getElementById("bufferCheck").checked) { // Om en har huket av for at en skal 'dissolve' gjøres det
+            
+            if (isMultiPolygon(buffer)) { // Kan ikke sende MultiPolygon inn i dissolved
+                buffer = fixMultiPolygons(buffer);
+            }
+            
             var dissolved = turf.dissolve(buffer);
             var newLayer = L.geoJSON(dissolved, {style: getStyle()});
         } else { // Ellers lager den bare mange ulike buffer-soner
diff --git a/javascript/dissolve.js b/javascript/dissolve.js
index bd453b3c5319e7c1f1b3cee5fc0557b50437d100..ea1a382a89490cf27c621a13f883f247907dbee2 100644
--- a/javascript/dissolve.js
+++ b/javascript/dissolve.js
@@ -22,6 +22,11 @@ function doDissolve() {
     
     // Prøver å kjøre dissolve-funksjonen:
     try {
+        
+        if (isMultiPolygon(layer)) { // Kan ikke sende MultiPolygon inn i dissolved
+            layer = fixMultiPolygons(layer);
+        }
+
         var dissolved = turf.dissolve(layer); // Kjører dissolve
         var newLayer = L.geoJSON(dissolved, {style: getStyle()});
         
diff --git a/javascript/sidebar&boxes.js b/javascript/sidebar&boxes.js
index 6b6359c40c99129371616f0deff2498e97cc787a..a4c065498974cfd8411974ca8b235db7d7f7d2ca 100644
--- a/javascript/sidebar&boxes.js
+++ b/javascript/sidebar&boxes.js
@@ -59,13 +59,28 @@ function closeBox(id) { // Lukker aktuell boks og justerer siden motsatt av hva
 
 // Fyller select i de ulike boksene med alternativ:
 
+function isPolygon(layer) {
+    var objects = layer["features"];
+    for (var i = 0; i < objects.lenght; i++) {
+        if (objects[i]["geometry"]["type"] == "Polygon") {
+            return true;
+        }
+    }
+    return false;
+}
+
 function fillSelect(id) {
     var select = document.getElementById(id);
     select.innerHTML = "";
     select.add(new Option(text="- - -"));
     
     for (key in overlayMaps) {
-        select.add(new Option(text = key, value = key));
+        if (id == "bufferSelect") {
+            select.add(new Option(text = key, value = key));
+        }
+        else if (id != "bufferSelect" && isPolygon(overlayMaps[key])) {
+            select.add(new Option(text = key, value = key));
+        }
     }
 }
 
diff --git a/javascript/turfFormatConverter.js b/javascript/turfFormatConverter.js
index 6e562a9eb1aece2c5e61acc9bffd730adf641845..85a629fc9a06cebefe4342be445655b6f9211502 100644
--- a/javascript/turfFormatConverter.js
+++ b/javascript/turfFormatConverter.js
@@ -17,15 +17,33 @@ function featureCollectionToMultiPolygon(layer) { // Funksjon som gjør om featu
 }
 
 function isMultiPolygon(layer) { // Inneholder 'layer' features som er MultiPolygon?
-    if (layer["geometry"]["type"] == "MultiPolygon") {
-        return true;
+    var more = false;
+
+    try { // Justerer i forhold til hvor mye innhold 'layer' har
+        if (layer["features"]) {
+            more = true;
+        }
+    } catch {}
+
+    if (more) {
+        for (var i = 0; i < layer["features"].length; i++) {
+            if (layer["features"][i]["geometry"]["type"] == "MultiPolygon") {
+                return true;
+            }
+        }
+    } else {
+        if (layer["geometry"]["type"] == "MultiPolygon") {
+            return true;
+        }
     }
     return false;
 }
 
-function multiPolygonToFeatureCollection(layer) {// Funksjon som gjør om features i 'layer' til FeatureCollection istedenfor MultiPolygon
+function multiPolygonToFeatureCollection(layer) { // Funksjon som gjør om features i 'layer' til FeatureCollection istedenfor MultiPolygon
     // 'layer' er her et GeoJSON-lag
-    var features = [];
+
+    features = [];
+
     for (var i = 0; i < layer["geometry"]["coordinates"].length; i++) {
         var geometry = {
             "type": "Polygon",
@@ -33,9 +51,47 @@ function multiPolygonToFeatureCollection(layer) {// Funksjon som gjør om featur
         };
         features.push(turf.feature(geometry));
     }
+
     return turf.featureCollection(features);
 }
 
+function fixMultiPolygons(layer) { // Annen variant som løser MultiPolygon-problemet for de ulike GIS-funksjonene
+    var features = layer["features"];
+    var k = features.length;
+    
+    for (var i = 0; i < k; i++) {
+        /*
+        Her itererer en gjennom alle features i FeatureCollection,
+        plukker ut alle features som er registrert som MultiPolygon,
+        og gjør dem om til flere Polygons
+        */
+        if (features[i]["geometry"]["type"] == "MultiPolygon") { // Er det MultiPolygon?
+            var coord = features[i]["geometry"]["coordinates"]; // Henter geometrien til alle Polygonene
+            // Oppdaterer første polygon:
+            features[i]["geometry"]["type"] = "Polygon";
+            features[i]["geometry"]["coordinates"] = coord[0];
+            for (var j = 1; j < coord.length; j++) {
+                // Lager så nye features for resten av polygonene i MultiPolygonet:
+                var newFeature = {};
+                for (key in features[i]) { // Vil ha de samme nøklene og deres verdier som originalen
+                    if (key != "geometry") { // ... men ikke lik geometri
+                        newFeature[key] = features[i][key];
+                    }
+                }
+                newFeature["geometry"] = { // Legger til geometri
+                    "type": "Polygon",
+                    "coordinates": coord[j] // Henter koordinat fra original-lista
+                };
+                features.push(newFeature); // Legger til ny feature
+            }
+        }
+    }
+
+    layer["features"] = features; // Oppdaterer features-lista
+
+    return layer;
+}
+
 /*
 Håndtering av input-filer fra bruker for å få de på rett format egnet for turf-operasjoner
 */