Index: trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src/de/ugoe/cs/swe/bnftools/ui/formatter/EbnfFormatterVisitor.java
===================================================================
--- trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src/de/ugoe/cs/swe/bnftools/ui/formatter/EbnfFormatterVisitor.java	(revision 28)
+++ trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src/de/ugoe/cs/swe/bnftools/ui/formatter/EbnfFormatterVisitor.java	(revision 29)
@@ -263,4 +263,9 @@
 	private void newLine() {
 		buf.append("\n");
+		if ((ruleSpacingStack != null) && (!ruleSpacingStack.empty())) {
+			newLineOffsetCounter = ruleSpacingStack.peek();
+		} else {
+			newLineOffsetCounter = 0;
+		}
 	}
 	
Index: trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src/de/ugoe/cs/swe/bnftools/ui/formatter/FormatterConfig.java
===================================================================
--- trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src/de/ugoe/cs/swe/bnftools/ui/formatter/FormatterConfig.java	(revision 28)
+++ trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src/de/ugoe/cs/swe/bnftools/ui/formatter/FormatterConfig.java	(revision 29)
@@ -4,4 +4,5 @@
 	private boolean newLineAfterAlternative = true;
 	private boolean preventNewLineAfterAlternativeOnLessThanThreeElements = true;
+	private boolean preventNewLineAfterAlternativeOnShortAlternatives = true;
 
 	public boolean isNewLineAfterAlternative() {
@@ -22,3 +23,12 @@
 	}
 
+	public boolean isPreventNewLineAfterAlternativeOnShortAlternatives() {
+		return preventNewLineAfterAlternativeOnShortAlternatives;
+	}
+
+	public void setPreventNewLineAfterAlternativeOnShortAlternatives(
+			boolean preventNewLineAfterAlternativeOnShortAlternatives) {
+		this.preventNewLineAfterAlternativeOnShortAlternatives = preventNewLineAfterAlternativeOnShortAlternatives;
+	}
+
 }
