diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/folding/DefaultCFoldingStructureProvider.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/folding/DefaultCFoldingStructureProvider.java
index d09d469cfce..4b10357a412 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/folding/DefaultCFoldingStructureProvider.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/folding/DefaultCFoldingStructureProvider.java
@@ -1252,18 +1252,20 @@ public class DefaultCFoldingStructureProvider implements ICFoldingStructureProvi
 				comments.add(new Tuple(new CProjectionAnnotation(collapse, doc.get(projection.offset, Math.min(16, projection.length)), true), projection));
 			}
 		}
-		// first comment is header comment
-		Iterator iter = comments.iterator();
-		Tuple tuple = (Tuple) iter.next();
-		if (ctx.collapseHeaderComments()) {
-			tuple.annotation.markCollapsed();
-		} else {
-			tuple.annotation.markExpanded();
-		}
-		ctx.addProjectionRange(tuple.annotation, tuple.position);
-		while (iter.hasNext()) {
-			tuple = (Tuple) iter.next();
+		if (!comments.isEmpty()) {
+			// first comment is header comment
+			Iterator iter = comments.iterator();
+			Tuple tuple = (Tuple) iter.next();
+			if (ctx.collapseHeaderComments()) {
+				tuple.annotation.markCollapsed();
+			} else {
+				tuple.annotation.markExpanded();
+			}
 			ctx.addProjectionRange(tuple.annotation, tuple.position);
+			while (iter.hasNext()) {
+				tuple = (Tuple) iter.next();
+				ctx.addProjectionRange(tuple.annotation, tuple.position);
+			}
 		}
 	}