I often use C-x h TAB and M-x untabify to format C, C++, and Java code. If a document has an errant UTF-8 byte order mark (a UTF-8 BOM is EF BB BF), Emacs cannot always format the source file. For example, the attached Java file (JavaEncryptor.java-backup) has 1845 BOMs sprinkled throughout. I'm not sure what editor put them in, but Emacs does not properly handle some operations with them present. If I strip the errant BOMs with the attached program (efbbbf-strip.cpp), Emacs will properly format the file.