diff --git a/pom.xml b/pom.xml
index 71c05781f198c407585f3a9e96fe46560df21923..4bec365791a69cda675347ff6ad86540f4b2a943 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,7 +27,7 @@
     </dependencies>
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <maven.compiler.source>1.7</maven.compiler.source>
-        <maven.compiler.target>1.7</maven.compiler.target>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
     </properties>
 </project>
\ No newline at end of file
diff --git a/src/main/java/no/bioforsk/vips/model/roughagenutritionmodel/RoughageNutritionModelImpl.java b/src/main/java/no/bioforsk/vips/model/roughagenutritionmodel/RoughageNutritionModelImpl.java
index c88cfc39e0e913e1276f51126d73be459058e272..419536bbbc6ce4e37a5c25971186e645e7145993 100644
--- a/src/main/java/no/bioforsk/vips/model/roughagenutritionmodel/RoughageNutritionModelImpl.java
+++ b/src/main/java/no/bioforsk/vips/model/roughagenutritionmodel/RoughageNutritionModelImpl.java
@@ -260,7 +260,9 @@ public class RoughageNutritionModelImpl implements CostFunction {
 
         boolean first = true;
         Date forrigeDato = null;
-        for (Iterator<WeatherObservation> tempI = this.luftTemperaturVerdier.iterator(); tempI.hasNext();) {
+        // Avoiding concurrentmodificationexception
+        List<WeatherObservation> tempCopy = new ArrayList<>(this.luftTemperaturVerdier);
+        for (Iterator<WeatherObservation> tempI = tempCopy.iterator(); tempI.hasNext();) {
             temperatur = tempI.next();
 
             // Beregner TS1
@@ -1612,9 +1614,7 @@ public class RoughageNutritionModelImpl implements CostFunction {
         NelderMead nelderMead = new NelderMead();
         Collections.sort(this.observasjoner); // For å sikre oss mhp. en del datoavhengige rutiner
 
-        // Rekkefølge:
-        // 1. Optimerer parametre for utvikling
-        this.optimeringsMaal = RoughageNutritionModelImpl.OPTIMERING_UTVIKLING;
+        
 
         /**
          * Denne metoden forteller NelderMead-klassen om vi er "nær nok" til at
@@ -1645,22 +1645,35 @@ public class RoughageNutritionModelImpl implements CostFunction {
             }
 
         };
+        
+        // Optimize only if we've got optimization observations
+        boolean foundMSC = this.observasjoner.stream().filter(
+                                    (obs) -> obs.getMSC() != null
+                            ).count() > 0;
+        
+        // Rekkefølge:
+        // 1. Optimerer parametre for utvikling
+        if(this.observasjoner.stream().filter( (obs) -> obs.getMSC() != null  ).count() > 0)
+        {
+            
+            this.optimeringsMaal = RoughageNutritionModelImpl.OPTIMERING_UTVIKLING;
 
-        // Rekkefølge for elementene: {alfa}
-        // Max og min-verdier for de ulike elementene:
-        // alfa {0.002-0.004}
-        double[][] verticesUtvikling = {{0.0025}, {0.0035}};
+            // Rekkefølge for elementene: {alfa}
+            // Max og min-verdier for de ulike elementene:
+            // alfa {0.002-0.004}
+            double[][] verticesUtvikling = {{0.0025}, {0.0035}};
 
-        PointCostPair optimumUtvikling = nelderMead.minimize(this, 1000, cChecker, verticesUtvikling);
-        if (DEBUG) {
-            System.out.println("[GrovforModell/optimerParametre] DEBUG: alfa=" + optimumUtvikling.getPoint()[0]);
-        }
 
-        this.alfa = ((Double) optimumUtvikling.getPoint()[0]);
-        //this.AIbeta = ((Double) optimumUtvikling.getPoint()[1]).doubleValue();
-        // Nullstiller AI-matrisen, slik at øvrige beregninger går som planlagt
-        this.AIBakgrunnsdataMatrise = null;
+            PointCostPair optimumUtvikling = nelderMead.minimize(this, 1000, cChecker, verticesUtvikling);
+            if (DEBUG) {
+                System.out.println("[GrovforModell/optimerParametre] DEBUG: alfa=" + optimumUtvikling.getPoint()[0]);
+            }
 
+            this.alfa = ((Double) optimumUtvikling.getPoint()[0]);
+            //this.AIbeta = ((Double) optimumUtvikling.getPoint()[1]).doubleValue();
+            // Nullstiller AI-matrisen, slik at øvrige beregninger går som planlagt
+            this.AIBakgrunnsdataMatrise = null;
+        }
         // 2. Optimering av parametre for avling
         // Sjekker først om vi har observasjoner av avling i peroden før førsteslått og mellom førsteslått og andreslått.
         boolean avlingMaaltFoerFoersteslaatt = false;
@@ -1938,6 +1951,7 @@ public class RoughageNutritionModelImpl implements CostFunction {
                     }
                     differanse += Math.pow(maaltUtviklingstrinn - beregnetUtviklingstrinn, 2);
                 }
+                System.out.println("Differanse=" + differanse);
                 return differanse;
             }