//
        //  Support for deferred population of the collection
        //

        private void Populate()
        {
            if (!_populated)
            {
                if (_request != null)
                {
                    MakeReadWrite();
                    _request.FillInServerVariablesCollection();
                    MakeReadOnly();
                }
                _populated = true;
            }
        }
        //
        //  Support for deferred population of the collection
        //

        private void Populate()
        {
            if (!_populated)
            {
                if (_request != null)
                {
                    MakeReadWrite();
                    _request.FillInServerVariablesCollection();

                    // Add all unsynchronized entries, if any
                    if (_unsyncedEntries != null)
                    {
                        foreach (var entry in _unsyncedEntries)
                        {
                            var existingEntry = (HttpServerVarsCollectionEntry)BaseGet(entry.Name);
                            if (existingEntry != null && existingEntry.IsDynamic)
                            {
                                // Exisiting dynamic server variables cannot be modified - ignore the new value
                                continue;
                            }

                            InvalidateCachedArrays();
                            BaseSet(entry.Name, entry); // Update an existing entry, or create one if it's new
                        }

                        _unsyncedEntries.Clear();
                    }

                    if (_iis7workerRequest == null)
                    {
                        MakeReadOnly();
                    }
                }
                _populated = true;
            }
        }