diff --git a/src/main/java/org/sablecc/sablecc/lexer/Lexer.java b/src/main/java/org/sablecc/sablecc/lexer/Lexer.java
index f2f11b9a44e561445b9fd956bd34d02be6212b74..43c6fda5dfab8fdd431b3ac2a5e0675e8e774f16 100644
--- a/src/main/java/org/sablecc/sablecc/lexer/Lexer.java
+++ b/src/main/java/org/sablecc/sablecc/lexer/Lexer.java
@@ -593,6 +593,12 @@ public class Lexer
         }
     }
 
+    /**
+     * @deprecated This method doesn't restore line/column info correctly in some cases
+     *     (if a token begins in the middle of a CRLF newline pair).
+     *     There is no planned replacement.
+     */
+    @Deprecated
     protected void unread(Token token) throws IOException
     {
         String text = token.getText();
diff --git a/src/main/resources/org/sablecc/sablecc/lexer.txt b/src/main/resources/org/sablecc/sablecc/lexer.txt
index 95e85f01d74b6b3474c63d9c936ec85ae780b493..5960c9fcf0df41994e2db59ba37548956b7390e0 100644
--- a/src/main/resources/org/sablecc/sablecc/lexer.txt
+++ b/src/main/resources/org/sablecc/sablecc/lexer.txt
@@ -292,6 +292,12 @@ Macro:LexerBody
         }
     }
 
+    /**
+     * @deprecated This method doesn't restore line/column info correctly in some cases
+     *     (if a token begins in the middle of a CRLF newline pair).
+     *     There is no planned replacement.
+     */
+    @Deprecated
     protected void unread(Token token) throws IOException
     {
         String text = token.getText();