diff --git a/features/org.eclipse.wst.common_core.feature.patch/buildnotes_org.eclipse.wst.common_core.feature.patch.html b/features/org.eclipse.wst.common_core.feature.patch/buildnotes_org.eclipse.wst.common_core.feature.patch.html
index 8f449e6..919c61a 100644
--- a/features/org.eclipse.wst.common_core.feature.patch/buildnotes_org.eclipse.wst.common_core.feature.patch.html
+++ b/features/org.eclipse.wst.common_core.feature.patch/buildnotes_org.eclipse.wst.common_core.feature.patch.html
@@ -2,9 +2,9 @@
 <html>
 
 <head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Build" content="Build">
-   <title>WTP 3.0.1 Patches</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta name="Build" content="Build">
+<title>WTP 3.0.1 Patches</title>
 </head>
 
 <body>
@@ -13,7 +13,15 @@
 
 <h2>org.eclipse.wst.common_core.feature</h2>
 
-<p>Bug <a href='https://bugs.eclipse.org/bugs/show_bug.cgi?id=243679'>243679</a>. NPE in ValidationRegistryReade</p>
-<p>Bug <a href='https://bugs.eclipse.org/bugs/show_bug.cgi?id=244086'>244086</a>. Build path errors after restart</p>
+<p>Bug <a
+	href='https://bugs.eclipse.org/bugs/show_bug.cgi?id=243679'>243679</a>.
+NPE in ValidationRegistryReade</p>
+<p>Bug <a
+	href='https://bugs.eclipse.org/bugs/show_bug.cgi?id=244086'>244086</a>.
+Build path errors after restart</p>
+<p>Bug <a
+	href='https://bugs.eclipse.org/bugs/show_bug.cgi?id=243377'>243377</a>.
+validationStarting/Finishing not called properly during clean/auto build</p>
 
-</body></html>
\ No newline at end of file
+</body>
+</html>
\ No newline at end of file
diff --git a/features/org.eclipse.wst.common_core.feature.patch/feature.properties b/features/org.eclipse.wst.common_core.feature.patch/feature.properties
index acdaef7..e94e123 100644
--- a/features/org.eclipse.wst.common_core.feature.patch/feature.properties
+++ b/features/org.eclipse.wst.common_core.feature.patch/feature.properties
@@ -28,7 +28,8 @@
 Contains fixes described in the following bugillia(s):\n\
 \n\
 Bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=243679 NPE in ValidationRegistryReade\n\
-Bug https://bugs.eclipse.org/244086 Build path errors after restart\n\
+Bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=244086 Build path errors after restart\n\
+Bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=243377 validationStarting/Finishing not called properly during clean/auto build\n\
 \n\
 
 # "copyright" property - text of the "Feature Update Copyright"
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValBuilderJob.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValBuilderJob.java
index b8be3ac..59c6c63 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValBuilderJob.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValBuilderJob.java
@@ -32,6 +32,8 @@
 import org.eclipse.wst.validation.IDependencyIndex;
 import org.eclipse.wst.validation.ValidationFramework;
 import org.eclipse.wst.validation.ValidationState;
+import org.eclipse.wst.validation.Validator;
+import org.eclipse.wst.validation.internal.model.IValidatorVisitor;
 import org.eclipse.wst.validation.internal.operations.ValidationBuilder;
 import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
 
@@ -123,6 +125,7 @@
 			run();
 			request = getRequest();
 		}
+		_request = null;
 		
 		Tracing.log("ValBuilderJob-02: Finished"); //$NON-NLS-1$
 		return Status.OK_STATUS;
@@ -131,8 +134,20 @@
 	private void run(){
 		setName(ValMessages.JobName + " " + _request.getProject().getName()); //$NON-NLS-1$
 		try {		
+	        IValidatorVisitor startingVisitor = new IValidatorVisitor(){
+
+	            public void visit(Validator validator, IProject project, ValType valType, 
+	                ValOperation operation, IProgressMonitor monitor) {
+	                
+	                validator.validationStarting(project, operation.getState(), monitor);                   
+	            }               
+	        };
+
+	        ValManager.getDefault().accept(startingVisitor, _request.getProject(), ValType.Build, _request.getOperation(), _monitor);
+		  
 			if (_request.getDelta() == null)fullBuild();
 			else deltaBuild();
+
 			
 		}
 		catch (ProjectUnavailableError e){
@@ -144,6 +159,17 @@
 		catch (CoreException e){
 			ValidationPlugin.getPlugin().handleException(e);
 		}
+		finally {
+		  IValidatorVisitor finishedVisitor = new IValidatorVisitor(){
+
+		    public void visit(Validator validator, IProject project, ValType valType,
+		      ValOperation operation, IProgressMonitor monitor) {
+
+		      validator.validationFinishing(project, operation.getState(), monitor);              
+		    }           
+		  };
+          ValManager.getDefault().accept(finishedVisitor, _request.getProject(), ValType.Build, _request.getOperation(), _monitor);
+		}
 		
 	}
 
