diff --git a/src/main/java/no/bioforsk/vips/model/applescabmodel/AppleScabModel.java b/src/main/java/no/bioforsk/vips/model/applescabmodel/AppleScabModel.java
index a49df19237fec49ffd07f54f527338ad2eb9b5b3..7ba5f207b38902dc225422af56b98304782d3ca9 100644
--- a/src/main/java/no/bioforsk/vips/model/applescabmodel/AppleScabModel.java
+++ b/src/main/java/no/bioforsk/vips/model/applescabmodel/AppleScabModel.java
@@ -320,47 +320,18 @@ public class AppleScabModel extends I18nImpl implements Model{
             }
         }
         
+        // Basic time series health check
         WeatherUtil wUtil = new WeatherUtil();
         
-        // Must be of same length, 
-        if(this.TM.size() != this.RR.size() || this.TM.size() != BT.size())
+        try
         {
-            throw new ConfigValidationException("Unequal length of weather parameter lists. "
-                    + "Temperature list size = " + this.TM.size()
-                    + ", precipitation list size = " + this.RR.size()
-                    + ", leaf wetness list size = " + this.BT.size()
-            );
+            wUtil.isHomogenousTimeSeries(this.TM, this.RR, this.BT);
         }
-        
-        // Must be starting at same time
-        if(
-                this.TM.get(0).getTimeMeasured().compareTo(this.RR.get(0).getTimeMeasured()) != 0
-                || this.TM.get(0).getTimeMeasured().compareTo(this.BT.get(0).getTimeMeasured()) != 0
-        )
+        catch(WeatherObservationListException ex)
         {
-            throw new ConfigValidationException("Weather parameter lists do not start at same time "
-                    + "Temperature list starts at = " + this.TM.get(0).getTimeMeasured()
-                    + ", precipitation list starts at = " + this.RR.get(0).getTimeMeasured()
-                    + ", leaf wetness list starts at = " + this.BT.get(0).getTimeMeasured()
-            );
+            throw new ConfigValidationException(ex.getMessage());
         }
         
-        // Must be ending at same time
-        int lastIndex = this.TM.size() -1;
-        if(
-                this.TM.get(lastIndex).getTimeMeasured().compareTo(this.RR.get(lastIndex).getTimeMeasured()) != 0
-                || this.TM.get(lastIndex).getTimeMeasured().compareTo(this.BT.get(lastIndex).getTimeMeasured()) != 0
-        )
-        {
-            throw new ConfigValidationException("Weather parameter lists do not end at same time "
-                    + "Temperature list ends at = " + this.TM.get(lastIndex).getTimeMeasured()
-                    + ", precipitation list ends at = " + this.RR.get(lastIndex).getTimeMeasured()
-                    + ", leaf wetness list ends at = " + this.BT.get(lastIndex).getTimeMeasured()
-            );
-        }
-        
-        
-        
         // If all that's OK, chop of all hour values exceeding the last full day
         // of hourly data
         this.TM = wUtil.cutTrailingHourlyValues(this.TM, timeZone);