diff --git a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/style/AbstractXSLSemanticHighlighting.java b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/style/AbstractXSLSemanticHighlighting.java
index 3b8ec2d..36f5061 100644
--- a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/style/AbstractXSLSemanticHighlighting.java
+++ b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/style/AbstractXSLSemanticHighlighting.java
@@ -11,6 +11,8 @@
 package org.eclipse.wst.xsl.ui.internal.style;
 
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
 
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.text.Position;
@@ -64,16 +66,15 @@
 
 	public abstract Position[] consumes(IStructuredDocumentRegion region);
 
-	protected Position[] createSemanticPositions(IStructuredDocumentRegion region, String regionType) {
+	protected List createSemanticPositions(IStructuredDocumentRegion region, String regionType) {
 		if (region == null) {
-			return null;
+			return Collections.EMPTY_LIST;
 		}
 		
 		if (!region.getType().equals(DOMRegionContext.XML_TAG_NAME)) {
-			return null;
+			return Collections.EMPTY_LIST;
 		}
 	
-		Position p[] = null;
 		ITextRegionList regionList = region.getRegions();
 		
 		ArrayList arrpos = new ArrayList();
@@ -85,9 +86,7 @@
 				arrpos.add(pos);
 			}
 		}
-		p = new Position[arrpos.size()];
-		arrpos.toArray(p);
-		return p;
+		return arrpos;
 	}
 
 	public Position[] consumes(IStructuredDocumentRegion documentRegion, IndexedRegion indexedRegion) {
diff --git a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/style/XSLAttrNameSemanticHighlighting.java b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/style/XSLAttrNameSemanticHighlighting.java
index cc39c52..8b92595 100644
--- a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/style/XSLAttrNameSemanticHighlighting.java
+++ b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/style/XSLAttrNameSemanticHighlighting.java
@@ -11,6 +11,8 @@
 package org.eclipse.wst.xsl.ui.internal.style;
 
 
+import java.util.ArrayList;
+
 import org.eclipse.jface.text.Position;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
 import org.eclipse.wst.sse.ui.ISemanticHighlighting;
@@ -32,8 +34,13 @@
 	}
 
 	public Position[] consumes(IStructuredDocumentRegion region) {
-		return createSemanticPositions(region,
-				DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE);
+		ArrayList array = new ArrayList();
+		array.addAll(createSemanticPositions(region, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME));
+		Position[] allPos = new Position[array.size()];
+		if (!array.isEmpty()) {
+			array.toArray(allPos);
+		}
+		return allPos;
 	}
 
 }
diff --git a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/style/XSLAttrValueSemanticHighlighting.java b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/style/XSLAttrValueSemanticHighlighting.java
index a577a8b..836baf7 100644
--- a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/style/XSLAttrValueSemanticHighlighting.java
+++ b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/style/XSLAttrValueSemanticHighlighting.java
@@ -11,6 +11,8 @@
 package org.eclipse.wst.xsl.ui.internal.style;
 
 
+import java.util.ArrayList;
+
 import org.eclipse.jface.text.Position;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
 import org.eclipse.wst.sse.ui.ISemanticHighlighting;
@@ -32,8 +34,12 @@
 	}
 
 	public Position[] consumes(IStructuredDocumentRegion region) {
-		return createSemanticPositions(region,
-				DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE);
-	}
+		ArrayList array = new ArrayList();
+		array.addAll(createSemanticPositions(region, DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE));
+		Position[] allPos = new Position[array.size()];
+		if (!array.isEmpty()) {
+			array.toArray(allPos);
+		}
+		return allPos;	}
 
 }
diff --git a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/style/XSLTagDelimsSemanticHighlighting.java b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/style/XSLTagDelimsSemanticHighlighting.java
index bbdc681..5812907 100644
--- a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/style/XSLTagDelimsSemanticHighlighting.java
+++ b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/style/XSLTagDelimsSemanticHighlighting.java
@@ -7,12 +7,15 @@
  *
  * Contributors:
  *     David Carver (Intalio) - bug 256339 - initial API and implementation
+ *                            - bug 307924 - Fix NPE when textRegion is null.
  *******************************************************************************/
 package org.eclipse.wst.xsl.ui.internal.style;
 
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
 
 import org.eclipse.jface.text.Position;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
@@ -38,36 +41,34 @@
 
 	public Position[] consumes(IStructuredDocumentRegion region) {
 		
-		Position[] openPos = createSemanticPositions(region.getFirstRegion(), region, DOMRegionContext.XML_TAG_OPEN);
-		Position[] endOpenPos = createSemanticPositions(region.getFirstRegion(), region, DOMRegionContext.XML_END_TAG_OPEN);
-		Position[] emptyTagClose = createSemanticPositions(region, DOMRegionContext.XML_EMPTY_TAG_CLOSE);
-		Position[] closePos = createSemanticPositions(region,	DOMRegionContext.XML_TAG_CLOSE);
+		List openPos = createSemanticPositions(region.getFirstRegion(), region, DOMRegionContext.XML_TAG_OPEN);
+		List endOpenPos = createSemanticPositions(region.getFirstRegion(), region, DOMRegionContext.XML_END_TAG_OPEN);
+		List emptyTagClose = createSemanticPositions(region, DOMRegionContext.XML_EMPTY_TAG_CLOSE);
+		List closePos = createSemanticPositions(region,	DOMRegionContext.XML_TAG_CLOSE);
 		ArrayList arrpos = new ArrayList();
-		arrpos.addAll(Arrays.asList(openPos));
-		arrpos.addAll(Arrays.asList(closePos));
-		arrpos.addAll(Arrays.asList(endOpenPos));
-		arrpos.addAll(Arrays.asList(emptyTagClose));
+		arrpos.addAll(openPos);
+		arrpos.addAll(closePos);
+		arrpos.addAll(endOpenPos);
+		arrpos.addAll(emptyTagClose);
 		Position[] allPos = new Position[arrpos.size()];
-		arrpos.toArray(allPos);
+		if (!arrpos.isEmpty()) {
+			arrpos.toArray(allPos);
+		}
 		return allPos;
 	}
 	
-	protected Position[] createSemanticPositions(ITextRegion textRegion, IStructuredDocumentRegion region, String regionType) {
-		if (textRegion == null) {
-			return null;
-		}
-		
-		Position p[] = null;
-	
+	protected List createSemanticPositions(ITextRegion textRegion, IStructuredDocumentRegion region, String regionType) {
 		ArrayList arrpos = new ArrayList();
-		if (textRegion.getType().equals(regionType)) {
+		if (textRegion == null) {
+			return Collections.EMPTY_LIST;
+		}
+	
+		if (regionType.equals(textRegion.getType())) {
 			Position pos = new Position(region
 					.getStartOffset(textRegion), textRegion.getLength());
 			arrpos.add(pos);
 		}
-		p = new Position[arrpos.size()];
-		arrpos.toArray(p);
-		return p;
+		return arrpos;
 	}
 
 }
diff --git a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/style/XSLTagNameSemanticHighlighting.java b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/style/XSLTagNameSemanticHighlighting.java
index fc029b5..fc450be 100644
--- a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/style/XSLTagNameSemanticHighlighting.java
+++ b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/style/XSLTagNameSemanticHighlighting.java
@@ -10,6 +10,8 @@
  *******************************************************************************/
 package org.eclipse.wst.xsl.ui.internal.style;
 
+import java.util.ArrayList;
+
 import org.eclipse.jface.text.Position;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
 import org.eclipse.wst.sse.ui.ISemanticHighlighting;
@@ -30,6 +32,12 @@
 	}
 
 	public Position[] consumes(IStructuredDocumentRegion region) {
-		return createSemanticPositions(region, DOMRegionContext.XML_TAG_NAME);
+		ArrayList array = new ArrayList();
+		array.addAll(createSemanticPositions(region, DOMRegionContext.XML_TAG_NAME));
+		Position[] allPos = new Position[array.size()];
+		if (!array.isEmpty()) {
+			array.toArray(allPos);
+		}
+		return allPos;
 	}
 }
