                 if reactiveSpec.denorm
                     J.assert @_id?
 
-                    if @_watcherReactiveName?
-                        # Treat an own-reactive access the same as any query
+                    if J._watchedQuerySpecSet.get()?
                         if reactiveSpec.watchable ? @modelClass.watchable
                             projection = _: false
                             projection[fieldOrReactiveSpec] = true

                                    Use a combination of individual dot-paths instead."
                                console.warn "    #{JSON.stringify querySpec, null, 4}"

                        inclusionSet = J.fetching._projectionToInclusionSet @, querySpec.fields
                        watchableInclusionSet = {}
                        for includeSpec, include of inclusionSet
                            fieldOrReactiveName = includeSpec.split('.')[0]
                            watchable =
                                if fieldOrReactiveName of @fieldSpecs
                                    @fieldSpecs[fieldOrReactiveName].watchable ? @watchable
                                else if fieldOrReactiveName of @reactiveSpecs
                                    @reactiveSpecs[fieldOrReactiveName].watchable ? @watchable
                                else
                                    throw new Error "Unrecognized includeSpec for #{@name}.fetch: #{JSON.stringify includeSpec}"
                            if watchable
                                watchableInclusionSet[includeSpec] = true

                        watchableProjection = _.extend(
                            _: false
                            watchableInclusionSet
                        )
                        watchableQuerySpec = _.clone querySpec
                        watchableQuerySpec.fields = J.fetching._getCanonicalProjection @, watchableProjection

                        if modelName is 'Check' then console.log "fetch operation adding: #{JSON.stringify watchableQuerySpec}"
                        J._watchedQuerySpecSet.get()[J.fetching.stringifyQs watchableQuerySpec] = true

                    mongoFieldsArg = J.fetching.projectionToMongoFieldsArg @, options.fields ? {}


            if Meteor.isServer and J._watchedQuerySpecSet.get()?
                J.assert @_id?

                if fieldSpec.watchable ? @modelClass.watchable
                    projection = _: false
                    projection[fieldOrReactiveSpec] = true
                    dummyQuerySpec = J.fetching.makeCanonicalQs
                        modelName: @modelClass.name
                        selector: @_id
                        fields: projection
                        limit: 1
                    dummyQsString = J.fetching.stringifyQs dummyQuerySpec
                    J._watchedQuerySpecSet.get()[dummyQsString] = true

                if @_fields.tryGet(fieldName) is undefined
                    console.warn "Field <#{@modelClass.name} #{JSON.stringify @_id}>.#{fieldName}
