diff --git a/src/main/java/com/google/devtools/build/lib/packages/Package.java b/src/main/java/com/google/devtools/build/lib/packages/Package.java
index 8296c36..a7482bb 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Package.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Package.java
@@ -1509,12 +1509,14 @@
     private static String conflictsWith(Target target) {
       String message = "conflicts with existing ";
       if (target instanceof OutputFile) {
-        return message + "generated file from rule '"
-          + ((OutputFile) target).getGeneratingRule().getName()
-          + "'";
+        message +=
+            "generated file from rule '"
+                + ((OutputFile) target).getGeneratingRule().getName()
+                + "'";
       } else {
-        return message + target.getTargetKind();
+        message += target.getTargetKind();
       }
+      return message + ", defined at " + target.getLocation();
     }
   }
 }
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
index e3468da..dfbf43a 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
@@ -580,12 +580,13 @@
     if (!(items instanceof Map<?, ?>)) {
       throw new EvalException(
           location,
-          "argument after ** must be a dictionary, not " + EvalUtils.getDataTypeName(items));
+          "argument after ** must be a dictionary, not '" + EvalUtils.getDataTypeName(items) + "'");
     }
     for (Map.Entry<?, ?> entry : ((Map<?, ?>) items).entrySet()) {
       if (!(entry.getKey() instanceof String)) {
         throw new EvalException(
-            location, "keywords must be strings, not " + EvalUtils.getDataTypeName(entry.getKey()));
+            location,
+            "keywords must be strings, not '" + EvalUtils.getDataTypeName(entry.getKey()) + "'");
       }
       addKeywordArg(kwargs, (String) entry.getKey(), entry.getValue(), duplicates);
     }
