diff --git a/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/graphics/TextLayout.java b/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/graphics/TextLayout.java
index 544f7cf..908bcb1 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/graphics/TextLayout.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/graphics/TextLayout.java
@@ -63,6 +63,7 @@
 	static final int UNDERLINE_THICK = 1 << 16;
 	static final RGB LINK_FOREGROUND = new RGB (0, 51, 153);
 	int[] invalidOffsets;
+	private boolean ignoreSegments;
 	static final char LTR_MARK = '\u200E', RTL_MARK = '\u200F';
 
 	static class StyleItem {
@@ -133,7 +134,7 @@
 
 void computeRuns() {
 	if (lineBounds != null) return;
-	String segmentsText = getSegmentsText();
+	String segmentsText = ignoreSegments ? text : getSegmentsText();
 	char[] chars = new char[segmentsText.length()];
 	segmentsText.getChars(0, chars.length, chars, 0);
 	NSString str = (NSString) new NSString().alloc();
@@ -2319,7 +2320,9 @@
 		tabBuffer.append(' ');
 	}
 	setText(tabBuffer.toString());
+	ignoreSegments = true;
 	this.defaultTabWidth = this.getTabWidth();
+	ignoreSegments = false;
 	setText (oldString);
 }
 
