diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/SourceProposal.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/SourceProposal.java
index d5e7145..1a4a753 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/SourceProposal.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/SourceProposal.java
@@ -33,7 +33,6 @@
 import org.eclipse.jface.text.contentassist.ICompletionProposalExtension6;
 import org.eclipse.jface.text.contentassist.ICompletionProposalExtension7;
 import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.jface.text.contentassist.IContextInformationExtension;
 import org.eclipse.jface.text.source.Annotation;
 import org.eclipse.jface.text.source.ISourceViewer;
 import org.eclipse.jface.text.source.SourceViewer;
@@ -118,7 +117,6 @@
 		private @Nullable TextRegion selectionToSet;
 		
 		private @Nullable IContextInformation contextInformation;
-		private int contextInformationPosition= -1;
 		
 		
 		public ApplyData() {
@@ -146,24 +144,14 @@
 			return this.selectionToSet;
 		}
 		
-		public <T extends IContextInformation & IContextInformationExtension> void setContextInformation(final T info) {
+		public void setContextInformation(final IContextInformation info) {
 			this.contextInformation= info;
-			this.contextInformationPosition= info.getContextInformationPosition();
-		}
-		
-		public void setContextInformation(final IContextInformation info, final int position) {
-			this.contextInformation= info;
-			this.contextInformationPosition= position;
 		}
 		
 		public @Nullable IContextInformation getContextInformation() {
 			return this.contextInformation;
 		}
 		
-		public int getContextInformationPosition() {
-			return this.contextInformationPosition;
-		}
-		
 	}
 	
 	
@@ -515,11 +503,8 @@
 	
 	@Override
 	public int getContextInformationPosition() {
-		final ApplyData applyData= this.applyData;
-		if (applyData != null) {
-			return applyData.getContextInformationPosition();
-		}
-		return -1;
+		// return the default reference position, not the context position directly
+		return getInvocationContext().getSourceViewer().getSelectedRange().x;
 	}
 	
 	
