Improve the error message when a TAB character starts a token
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 5eb24b4..c30d7bf 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -6,6 +6,11 @@
         <author email="py4fun@gmail.com">Andrey Somov</author>
     </properties>
     <body>
+        <release version="1.12-SNAPSHOT" date="in Mercurial" description="Maintenance">
+             <action dev="py4fun" type="update">
+                Improve the error message when a TAB character starts a token (2012-11-06)
+             </action>
+        </release>
         <release version="1.11" date="2012-09-29" description="Maintenance">
              <action dev="py4fun" type="fix"  issue="158">
                 Fix issue 158: improve support for 32-bit characters (UTF-16 surrogate pairs) (2012-09-29)
diff --git a/src/main/java/org/yaml/snakeyaml/scanner/ScannerImpl.java b/src/main/java/org/yaml/snakeyaml/scanner/ScannerImpl.java
index b97f778..629dc6d 100644
--- a/src/main/java/org/yaml/snakeyaml/scanner/ScannerImpl.java
+++ b/src/main/java/org/yaml/snakeyaml/scanner/ScannerImpl.java
@@ -412,8 +412,13 @@
                 break;
             }
         }
-        throw new ScannerException("while scanning for the next token", null, "found character "
-                + ch + "'" + chRepresentation + "' that cannot start any token", reader.getMark());
+        if (ch == '\t')
+            chRepresentation += "(TAB)";
+        String text = String
+                .format("found character %s '%s' that cannot start any token. (Do not use %s for indentation)",
+                        ch, chRepresentation, chRepresentation);
+        throw new ScannerException("while scanning for the next token", null, text,
+                reader.getMark());
     }
 
     // Simple keys treatment.
diff --git a/src/test/java/org/yaml/snakeyaml/scanner/ScannerImplTest.java b/src/test/java/org/yaml/snakeyaml/scanner/ScannerImplTest.java
index 2c4216d..e0e57fc 100644
--- a/src/test/java/org/yaml/snakeyaml/scanner/ScannerImplTest.java
+++ b/src/test/java/org/yaml/snakeyaml/scanner/ScannerImplTest.java
@@ -61,7 +61,7 @@
             fail("TAB cannot start a token.");
         } catch (Exception e) {
             assertEquals(
-                    "while scanning for the next token; found character \t'\\t' that cannot start any token;  in 'string', line 1, column 1:\n    \t  data: 1\n    ^",
+                    "while scanning for the next token; found character \t '\\t(TAB)' that cannot start any token. (Do not use \\t(TAB) for indentation);  in 'string', line 1, column 1:\n    \t  data: 1\n    ^",
                     e.getMessage());
         }
     }