diff --git a/lib/waterline/query/finders/basic.js b/lib/waterline/query/finders/basic.js
index <HASH>..<HASH> 100644
--- a/lib/waterline/query/finders/basic.js
+++ b/lib/waterline/query/finders/basic.js
@@ -52,7 +52,7 @@ module.exports = {
 
     // Normalize criteria
     // criteria = normalize.criteria(criteria);
-    criteria = normalizeCriteria(criteria);
+    criteria = normalizeCriteria(criteria, this.identity, this.waterline);
 
     // Return Deferred or pass to adapter
     if (typeof cb !== 'function') {
diff --git a/lib/waterline/utils/normalize-criteria.js b/lib/waterline/utils/normalize-criteria.js
index <HASH>..<HASH> 100644
--- a/lib/waterline/utils/normalize-criteria.js
+++ b/lib/waterline/utils/normalize-criteria.js
@@ -40,7 +40,12 @@ var getModel = require('./get-model');
  *
  * --
  *
- * @param  {Ref} criteria    [The original criteria (i.e. from a "stage 1 query")]
+ * @param  {Ref} criteria
+ *         The original criteria (i.e. from a "stage 1 query").
+ *         > WARNING:
+ *         > IN SOME CASES (BUT NOT ALL!), THE PROVIDED CRITERIA WILL
+ *         > UNDERGO DESTRUCTIVE, IN-PLACE CHANGES JUST BY PASSING IT
+ *         > IN TO THIS UTILITY.
  *
  * @param {String?} modelIdentity
  *        The identity of the model this criteria is referring to (e.g. "pet" or "user")
Update findOne to call normalizeCriteria properly (it really should be switched to using forgePhaseTwoQuery(), but will come back to that).  This commit also adds a loud warning comment in the fireworks atop normalizeCriteria() to make it clear that the provided criteria may be (but not necessarily _will_ be) mutated in-place.