diff --git a/core/src/main/java/lucee/commons/lang/ClassUtil.java b/core/src/main/java/lucee/commons/lang/ClassUtil.java
index <HASH>..<HASH> 100644
--- a/core/src/main/java/lucee/commons/lang/ClassUtil.java
+++ b/core/src/main/java/lucee/commons/lang/ClassUtil.java
@@ -383,12 +383,17 @@ public final class ClassUtil {
 			throw new ClassException("the specified class object [" + clazz.getName() + "()] cannot be instantiated");
 		}
 		catch (IllegalAccessException e) {
-			throw new ClassException("can't load class because the currently executing method does not have access to the definition of the specified class");
+			throw new ClassException("can't load class [" + clazz.getName() + "] because the currently executing method does not have access to the definition of the specified class");
 		}
 		catch (Exception e) {
-			ClassException ce = new ClassException(e.getMessage() == null ? e.getClass().getName() : e.getMessage());
+			String message = "";
+			if( e.getMessage() != null ) {
+				message = e.getMessage() + " ";
+			}
+			message += e.getClass().getName() + " while creating an instance of " + clazz.getName();
+			ClassException ce = new ClassException(message);
 			ce.setStackTrace(e.getStackTrace());
-			return e;
+			throw ce;
 		}
 	}
LDEV-<I> Throw exception, don't return it (#<I>)