diff --git a/src/main/java/com/aparapi/IProfileReportObserver.java b/src/main/java/com/aparapi/IProfileReportObserver.java
index 43c17ba895151141dc7cf891527db2e645df4da2..c2f9b903ef5d62e26f4c3280da6f10840a4b1bc0 100644
--- a/src/main/java/com/aparapi/IProfileReportObserver.java
+++ b/src/main/java/com/aparapi/IProfileReportObserver.java
@@ -29,11 +29,13 @@ public interface IProfileReportObserver {
 	/**
 	 * The listener method will be invoked each time a profile report becomes available for each Aparapi Kernel which has
 	 * a registered observer.<br/>
-	 * <b>Note1: </b>A report will be generated by a thread executing a kernel, but if multiple threads execute the same kernel,
-	 * on the same device, the report rate is limited to a single thread at a time per kernel per device.<br/>
+	 * <b>Note1: </b>A report will be generated by a thread executing a kernel. If multiple threads execute the same kernel,
+	 * concurrently, this method can be called concurrently too, thus classes implementing this interface need to provide
+	 * a thread safe method.
 	 * <br/>
-	 * <b>Note2: </b>When an observer is registered there is no need to acknowledge the reception of a profile report, a new
-	 * one will be automatically generated when another thread runs the same kernel on the same device.
+	 * <b>Note2: </b>If profiling information is to be stored has a {@link com.aparapi.ProfileReport}, it is necessary to clone 
+	 * the profileInfo object with {@link com.aparapi.ProfileReport#clone()}. A WeakReference is used to help differentiate such
+	 * need, however it is guaranteed that profileInfo will not be null, during the method execution.
 	 * <br/>
 	 * @param kernelClass the class of the kernel to which the profile report pertains
 	 * @param device the device on which the kernel ran, producing the profile report