diff --git a/libwccl/sentencecontext.h b/libwccl/sentencecontext.h
index fc69166557eef345fb3aae2ad5643c9daed9ebb7..6ff68a3351077c988cc6a73d7f2fd357fddee7ca 100644
--- a/libwccl/sentencecontext.h
+++ b/libwccl/sentencecontext.h
@@ -74,24 +74,34 @@ public:
 
 	/// Token access convenience function - const.
 	/// Will return NULL if the passed position is not valid in this Sentence
-	const Corpus2::Token* at(int position) const {
+	const Corpus2::Token* at(int abs_pos) const {
 		if (is_current_inside()) {
-			return get_sentence()[position];
+			return get_sentence()[abs_pos];
 		} else {
 			return NULL;
 		}
 	}
 
+	/// Token access const function overload that takes a Position object
+	const Corpus2::Token* at(const Position& position) const {
+		return at(get_abs_position(position));
+	}
+
 	/// Token access convenience function.
 	/// Will return NULL if the passed position is not valid in this Sentence
-	Corpus2::Token* at(int position) {
+	Corpus2::Token* at(int abs_pos) {
 		if (is_current_inside()) {
-			return get_sentence()[position];
+			return get_sentence()[abs_pos];
 		} else {
 			return NULL;
 		}
 	}
 
+	/// Token access function overload that takes a Position object
+	Corpus2::Token* at(const Position& position) {
+		return at(get_abs_position(position));
+	}
+
 	/// Current token access shorthand, const. @see at
 	const Corpus2::Token* current() const {
 		return at(position_);