diff --git a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java index 40c35f294d7b..62bd4c2f0957 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java @@ -1027,7 +1027,7 @@ public class LookupImpl extends LightweightHint implements LookupEx, Disposable, } public void restorePrefix() { - myOffsets.restorePrefix(getLookupStart()); + myOffsets.restorePrefix(); } private static String staticDisposeTrace = null; diff --git a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupOffsets.java b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupOffsets.java index 8d435b7ab980..84699a20cb92 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupOffsets.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupOffsets.java @@ -143,10 +143,10 @@ public class LookupOffsets extends DocumentAdapter { myRemovedPrefix = 0; } - void restorePrefix(int lookupStart) { - if (myInitialPrefix != null) { - myEditor.getDocument().replaceString(lookupStart, myEditor.getCaretModel().getOffset(), myInitialPrefix); - } + void restorePrefix() { + if (myInitialPrefix == null || !myLookupStartMarker.isValid()) return; + + myEditor.getDocument().replaceString(myLookupStartMarker.getStartOffset(), myEditor.getCaretModel().getOffset(), myInitialPrefix); } void disposeMarkers() {