Fix [JACKSON-842]

diff --git a/release-notes/CREDITS b/release-notes/CREDITS
index 5dffc88..f4e8394 100644
--- a/release-notes/CREDITS
+++ b/release-notes/CREDITS
@@ -924,3 +924,7 @@
 Scott Stanton:
   * Reported [JACKSON-841] Data is doubled in SegmentedStringWriter output
    [1.9.8]
+
+Sébastien R:
+  * Reported [JACKSON-842] ArrayIndexOutOfBoundsException when skipping C-style comments
+   [1.9.8]
diff --git a/release-notes/VERSION b/release-notes/VERSION
index 37881a2..139f654 100644
--- a/release-notes/VERSION
+++ b/release-notes/VERSION
@@ -12,7 +12,9 @@
     from reported token name
    (reported by Lóránt Pintér)
   * [JACKSON-841] Data is doubled in SegmentedStringWriter output
-  (reported by Scott S)
+   (reported by Scott S)
+  * [JACKSON-842] ArrayIndexOutOfBoundsException when skipping C-style comments
+   (reported by Sebastien R)
 
 ------------------------------------------------------------------------
 === History: ===
diff --git a/src/java/org/codehaus/jackson/impl/Utf8StreamParser.java b/src/java/org/codehaus/jackson/impl/Utf8StreamParser.java
index 1c1ee14..981001c 100644
--- a/src/java/org/codehaus/jackson/impl/Utf8StreamParser.java
+++ b/src/java/org/codehaus/jackson/impl/Utf8StreamParser.java
@@ -2432,12 +2432,16 @@
         final int[] codes = CharTypes.getInputCodeComment();
 
         // Ok: need the matching '*/'
+        main_loop:
         while ((_inputPtr < _inputEnd) || loadMore()) {
             int i = (int) _inputBuffer[_inputPtr++] & 0xFF;
             int code = codes[i];
             if (code != 0) {
                 switch (code) {
                 case INT_ASTERISK:
+                    if (_inputPtr >= _inputEnd && !loadMore()) {
+                        break main_loop;
+                    }
                     if (_inputBuffer[_inputPtr] == INT_SLASH) {
                         ++_inputPtr;
                         return;