Index: trunk/grails-app/domain/TaskRecurringSchedule.groovy
===================================================================
--- trunk/grails-app/domain/TaskRecurringSchedule.groovy	(revision 136)
+++ trunk/grails-app/domain/TaskRecurringSchedule.groovy	(revision 137)
@@ -23,6 +23,5 @@
 
     static constraints = {
-// 		startDate(validator: {return (it > new Date())})
-        recurEvery(min:0, max:365)
+        recurEvery(min:1, max:365)
         taskDuration(min:0, max:365)
         generateAhead(min:0, max:365)
@@ -35,12 +34,14 @@
     }
     
-    //As of Grails 1.1 this does not fire/pass before validation.
-    //But setting defaults above and placing this code here in the hope that this will be fixed in future versions.
+    // As of Grails 1.1.1 this does not fire/pass before validation.
+    // But setting some defaults above to pass validation and placing this code here 
+	// in the hope that this will be fixed in future versions.
     def beforeInsert = {
-        def now = new Date()
-        
         nextTargetStartDate = startDate
-        
-        //nextGenerationDate
+        setNextGenerationDate()
+        setNextTargetCompletionDate()
+    }
+    
+    public void setNextGenerationDate() {
         switch (generateAheadPeriod.period) {
             case "Day(s)":
@@ -67,8 +68,9 @@
                 break
         }
-        
+        def now = new Date()
         if( nextGenerationDate < now) {nextGenerationDate = now}
-        
-        //nextTargetCompletionDate
+    }
+    
+    public void setNextTargetCompletionDate() {
         switch (taskDurationPeriod.period) {
             case "Day(s)":
@@ -92,10 +94,9 @@
                 }
                 break
-        default:
+            default:
                 break
         }
-        
     }
-
+    
 }
 
