diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidationOperation.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidationOperation.java
index 562e6fd..4409e02 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidationOperation.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidationOperation.java
@@ -839,8 +839,17 @@
 		
 			while( iterator.hasNext() ){
 				vmd = (ValidatorMetaData) iterator.next();
+				IValidator valInstance = null;
 				try {
-					if( isFork() && vmd.getValidator() instanceof IValidatorJob ){
+					valInstance = vmd.getValidator();
+				} catch (InstantiationException e1) {
+					if(!ValidatorManager.getManager().getProblemValidators().contains(vmd)) {
+						ValidatorManager.getManager().getProblemValidators().add(vmd);
+						System.out.println(e1.getMessage());
+					}
+				}
+				
+					if( isFork() && (valInstance != null) && valInstance instanceof IValidatorJob ){
 						try {
 							delta = getFileDeltas(reporter.getProgressMonitor(), vmd);
 						} catch (CoreException e) {
@@ -850,17 +859,8 @@
 						if( willRun ){
 							jobValidators.add( vmd );
 						}
-					}else{
+					}else if (valInstance != null){
 						validators.add( vmd );
-					}
-				} catch (InstantiationException e) {
-					Logger.getLogger().logError(e);
-					if (logger.isLoggingLevel(Level.SEVERE)) {
-						LogEntry entry = ValidationPlugin.getLogEntry();
-						entry.setSourceID("ValidationOperation.validate(WorkbenchReporter)"); //$NON-NLS-1$
-						entry.setTargetException(e);
-						logger.write(Level.SEVERE, entry);
-					}				
 				}
 			}
 			if( jobValidators.size() > 0 ){
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidatorManager.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidatorManager.java
index 9db3850..68605e6 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidatorManager.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidatorManager.java
@@ -66,6 +66,7 @@
 	private static Class _messageLimitOwner = null;
 	private String[] _internalOwners = null;
 	private Map validatorMsgs = Collections.synchronizedMap( new HashMap() );	
+	private Set problemValidators = new HashSet();	
 	
 	/**
 	 * ValidatorManager constructor comment.
@@ -1154,5 +1155,11 @@
 			list.clear();
 		}
 		validatorMsgs.remove( validator );
-	}	
+	}
+
+	
+	public Set getProblemValidators() {
+		return problemValidators;
+	}
+	
 }
