Scenario: Have you ever tried creating the SPSite and SPWeb context inside the RunWithElevatedPrivileges context? If you have done so, then you must have noticed that the context user is still the logged in user and is not elevated to the app_pool identity.
To get the right context, use the code as shown below.
SPSite siteColl = SPContext.Current.Site;
SPWeb webSite = siteColl.OpenWeb();
using (SPSite site = new SPSite(siteColl.ID))
using (SPWeb web = site.OpenWeb(site.ID))
// DO SOME THING IMP HERE