| Index: src/profile-generator.cc | 
| diff --git a/src/profile-generator.cc b/src/profile-generator.cc | 
| index cc86724437f155d537609f947bd103601b0f37c2..8428303afe6da9daf82dddcb43aa0d827a8d4be6 100644 | 
| --- a/src/profile-generator.cc | 
| +++ b/src/profile-generator.cc | 
| @@ -655,7 +655,8 @@ void ProfileGenerator::RecordTickSample(const TickSample& sample) { | 
| CodeEntry** entry = entries.start(); | 
| memset(entry, 0, entries.length() * sizeof(*entry)); | 
| if (sample.pc != NULL) { | 
| -    if (sample.has_external_callback) { | 
| +    if (sample.has_external_callback && sample.state == EXTERNAL && | 
| +        sample.top_frame_type == StackFrame::EXIT) { | 
| // Don't use PC when in external callback code, as it can point | 
| // inside callback's code, and we will erroneously report | 
| // that a callback calls itself. | 
|  |