diff --git a/src/main/java/org/apache/sling/models/impl/model/AbstractInjectableElement.java b/src/main/java/org/apache/sling/models/impl/model/AbstractInjectableElement.java
index 0f5c205..1ed8b53 100644
--- a/src/main/java/org/apache/sling/models/impl/model/AbstractInjectableElement.java
+++ b/src/main/java/org/apache/sling/models/impl/model/AbstractInjectableElement.java
@@ -175,11 +175,11 @@
                 } else if (itemType == Double.class) {
                     value = arrayToTypedList(defaultAnnotation.doubleValues());
                 } else {
-                    log.warn("Default values for {} List/Collection are not supported", itemType);
+                    log.warn("Default values for {} List/Collection are not supported (used on {})", itemType, element);
                 }
             }
             else {
-                log.warn("Cannot provide default for {}", type);
+                log.warn("Cannot provide default for {} (used on {})", type, element);
             }
         }
         else if (type instanceof Class) {
@@ -213,7 +213,7 @@
                 } else if (componentType == Double.class) {
                     value = ArrayUtils.toObject(defaultAnnotation.doubleValues());
                 } else {
-                    log.warn("Default values for {} are not supported", componentType);
+                    log.warn("Default values for {} are not supported  (used on {})", componentType, element);
                 }
             } else {
                 if (injectedClass == String.class) {
@@ -231,11 +231,11 @@
                 } else if (injectedClass == Double.class) {
                     value = defaultAnnotation.doubleValues().length == 0 ? 0d : defaultAnnotation.doubleValues()[0];
                 } else {
-                    log.warn("Default values for {} are not supported", injectedClass);
+                    log.warn("Default values for {} are not supported  (used on {})", injectedClass, element);
                 }
             }
         } else {
-            log.warn("Cannot provide default for {}", type);
+            log.warn("Cannot provide default for {}  (used on {})", type, element);
         }
         return value;
     }
diff --git a/src/main/java/org/apache/sling/models/impl/model/InjectableField.java b/src/main/java/org/apache/sling/models/impl/model/InjectableField.java
index 161b369..10a70e1 100644
--- a/src/main/java/org/apache/sling/models/impl/model/InjectableField.java
+++ b/src/main/java/org/apache/sling/models/impl/model/InjectableField.java
@@ -41,7 +41,7 @@
             field.setAccessible(true);
             field.set(createdObject, result.getValue());
         } catch (Exception e) {
-            return new ModelClassException("Could not inject field due to reflection issues", e);
+            return new ModelClassException("Could not inject field " + field + " due to reflection issues", e);
         }
         return null;
     }
