Index: /trunk/grails-app/services/TaskService.groovy
===================================================================
--- /trunk/grails-app/services/TaskService.groovy	(revision 831)
+++ /trunk/grails-app/services/TaskService.groovy	(revision 832)
@@ -341,15 +341,15 @@
                 return fail(field:"task", code:"task.notFound")
 
+            if(taskInstance.taskStatus.id == 3)
+                return fail(field:"task", code:"task.operationNotPermittedOnCompleteTask")
+
+            // Check for authorisation on recurring tasks.
+            if(taskInstance.taskRecurringSchedule) {
+                if(!authenticateService.ifAnyGranted('ROLE_AppAdmin,ROLE_Manager,ROLE_TaskManager'))
+                    return fail(field:"task", code:"task.operationNotPermittedOnRecurringTaskWithoutAuth")
+            }
+
             if(result.entryInstance.hasErrors() || !result.entryInstance.save())
                 return fail(code:"default.create.failure")
-
-            if(taskInstance.taskStatus.id == 3)
-                return fail(field:"task", code:"task.operationNotPermittedOnCompleteTask")
-
-            // Check for authorisation on recurring tasks.
-            if(taskInstance.taskRecurringSchedule) {
-                if(!authenticateService.ifAnyGranted('ROLE_AppAdmin,ROLE_Manager,ROLE_TaskManager'))
-                    return fail(field:"task", code:"task.operationNotPermittedOnRecurringTaskWithoutAuth")
-            }
 
             // If task status is "Not Started" and entry type is "Work Done" and time has been booked.
