diff --git a/src/org/oscim/theme/osmarender/default.xml b/src/org/oscim/theme/osmarender/default.xml
index e06532c4..81560f0d 100644
--- a/src/org/oscim/theme/osmarender/default.xml
+++ b/src/org/oscim/theme/osmarender/default.xml
@@ -36,7 +36,7 @@
   
   
   <style-line name="residential"         stroke="#ffffff" width="1.3" min="1.2"/>
- 	<style-line name="residential:bridge"  from="residential" cap="square"/>
+  <style-line name="residential:bridge"  from="residential" cap="square"/>
  	
  	<!-- when inheriting another style with 'from' then 'witdth' is meant relative to the parent -->
  	<style-line name="pedestrian"          from="residential" width="-0.4"/>
@@ -255,7 +255,7 @@
 	      </rule>
 	
 	      <rule e="way" k="*" v="swimming_pool">
-	        <area fill="#b4cbdc" stroke="#6060ff" width="0.2" />
+	        <area fill="#b4cbdc" stroke="#6060ff" stroke-width="0.2" />
 	      </rule>
 	      
 	      <!-- <rule e="way" k="*" v="track"> <rule e="way" k="area" v="yes|true"> 
@@ -352,8 +352,7 @@
 
 
      <!-- outline 0 -->
-		<style-outline name="glow" stroke="#000000" width="0.2" blur="1.0"/>
-
+	  <style-outline name="glow" stroke="#000000" width="0.2" blur="1.0"/>
 	  <style-outline name="0" stroke="#44000000" width="0.1" />
     <!-- tunnel -->
     <rule e="way" k="tunnel" v="yes|true" zoom-min="11">
@@ -394,7 +393,7 @@
          <rule e="way" k="*" v="trunk_link|motorway_link">
            <use-line name="trunk_link"/>
            <use-outline name="0"/>
-        	 <use-text name="major-road"/> 
+            <use-text name="major-road"/> 
          </rule>
          
          <rule e="way" k="*" v="*" zoom-min="13">
@@ -1006,12 +1005,12 @@
     <!-- railway -->
     <rule e="node" k="railway" v="*">
       <rule e="node" k="*" v="station" zoom-min="14">
-        <circle r="6" fill="#ec2d2d" stroke="#606060" width="1.5" />
+        <circle r="6" fill="#ec2d2d" stroke="#606060" stroke-width="1.5" />
         <!-- <caption k="name" dy="-10" font-style="bold" font-size="13" fill="#ec2d2d" 
              stroke="#ffffff" stroke-width="2.0" /> -->
       </rule>
       <rule e="node" k="*" v="halt|tram_stop" zoom-min="17">
-        <circle r="4" fill="#ec2d2d" stroke="#606060" width="1.5" />
+        <circle r="4" fill="#ec2d2d" stroke="#606060" stroke-width="1.5" />
         <!-- <caption k="name" dy="-15" font-style="bold" font-size="11" fill="#ec2d2d" 
              stroke="#ffffff" stroke-width="2.0" /> -->
       </rule>
diff --git a/src/org/oscim/theme/osmarender/tronrender.xml b/src/org/oscim/theme/osmarender/tronrender.xml
index ee28f454..38e836d4 100644
--- a/src/org/oscim/theme/osmarender/tronrender.xml
+++ b/src/org/oscim/theme/osmarender/tronrender.xml
@@ -236,7 +236,7 @@
 	      </rule>
 	-->
 	      <rule e="way" k="*" v="swimming_pool">
-	        <area fill="#b4cbdc" stroke="#6060ff" width="0.2" />
+	        <area fill="#b4cbdc" stroke="#6060ff" stroke-width="0.2" />
 	      </rule>
 	      
 	      <!-- <rule e="way" k="*" v="track"> <rule e="way" k="area" v="yes|true"> 
@@ -996,12 +996,12 @@
     <!-- railway -->
     <rule e="node" k="railway" v="*">
       <rule e="node" k="*" v="station" zoom-min="14">
-        <circle r="6" fill="#ec2d2d" stroke="#606060" width="1.5" />
+        <circle r="6" fill="#ec2d2d" stroke="#606060" stroke-width="1.5" />
         <!-- <caption k="name" dy="-10" font-style="bold" font-size="13" fill="#ec2d2d" 
              stroke="#ffffff" stroke-width="2.0" /> -->
       </rule>
       <rule e="node" k="*" v="halt|tram_stop" zoom-min="17">
-        <circle r="4" fill="#ec2d2d" stroke="#606060" width="1.5" />
+        <circle r="4" fill="#ec2d2d" stroke="#606060" stroke-width="1.5" />
         <!-- <caption k="name" dy="-15" font-style="bold" font-size="11" fill="#ec2d2d" 
              stroke="#ffffff" stroke-width="2.0" /> -->
       </rule>
diff --git a/src/org/oscim/theme/renderTheme.xsd b/src/org/oscim/theme/renderTheme.xsd
index 3bcfe802..e59f6c0f 100644
--- a/src/org/oscim/theme/renderTheme.xsd
+++ b/src/org/oscim/theme/renderTheme.xsd
@@ -83,16 +83,18 @@
 
 	<!-- rendering instructions -->
 	<xs:complexType name="area">
+			<xs:attribute name="name" type="xs:string" use="optional"
+			default="0" />
 		<xs:attribute name="src" type="tns:src" use="optional" />
 		<xs:attribute name="fill" type="tns:color" use="optional"
 			default="#000000" />
-		<xs:attribute name="stroke" type="tns:color" u se="optional"
+		<xs:attribute name="stroke" type="tns:color" use="optional"
 			default="#00000000" />
 		<xs:attribute name="stroke-width" type="tns:nonNegativeFloat"
 			use="optional" default="0" />
 		<xs:attribute name="fade" type="xs:integer" use="optional"
 			default="-1" />
-			<xs:attribute name="blend" type="xs:integer" use="optional"
+		<xs:attribute name="blend" type="xs:integer" use="optional"
 			default="-1" />
 		<xs:attribute name="blend-fill" type="tns:color" use="optional"
 			default="#000000" />
@@ -129,10 +131,19 @@
 	</xs:complexType>
 
 	<xs:complexType name="line">
+		<!-- named style -->
+		<xs:attribute name="name" type="xs:string" use="optional"
+			default="0" />
+		<!-- inherited style -->
+		<xs:attribute name="from" type="xs:string" use="optional"
+			default="0" />
 		<xs:attribute name="src" type="tns:src" use="optional" />
 		<xs:attribute name="stroke" type="tns:color" use="optional"
 			default="#000000" />
-		<xs:attribute name="width" type="tns:nonNegativeFloat"
+		<xs:attribute name="width" type="xs:float"
+			use="optional" default="0" />
+		<!-- minimum scaled width to draw outline -->
+		<xs:attribute name="min" type="xs:float"
 			use="optional" default="0" />
 		<xs:attribute name="stroke-dasharray" type="tns:strokeDasharray"
 			use="optional" />
@@ -142,18 +153,22 @@
 			default="0" />
 		<xs:attribute name="fade" type="xs:integer" use="optional"
 			default="-1" />
+		<xs:attribute name="blur" type="xs:float" use="optional"
+			default="-1" />
 		<xs:attribute name="fixed" type="xs:boolean" use="optional"
 			default="false" />
 	</xs:complexType>
 
-	<xs:complexType name="outline">
+<!--  <xs:complexType name="outline">
+		<xs:attribute name="name" type="xs:string" use="optional"
+			default="0" />
 		<xs:attribute name="src" type="tns:src" use="optional" />
 		<xs:attribute name="stroke" type="tns:color" use="optional"
 			default="#000000" />
 		<xs:attribute name="stroke-width" type="tns:nonNegativeFloat"
 			use="optional" default="0" />
 	</xs:complexType>
-
+-->
 	<xs:complexType name="lineSymbol">
 		<xs:attribute name="src" type="tns:src" use="required" />
 		<xs:attribute name="align-center" type="xs:boolean" use="optional"
@@ -163,8 +178,11 @@
 	</xs:complexType>
 
 	<xs:complexType name="text">
-		<xs:attribute name="style" type="xs:string" use="optional" default="0"/>
-		<xs:attribute name="k" type="tns:textKey" use="required" />
+		<xs:attribute name="name" type="xs:string" use="optional"
+			default="0" />
+		<xs:attribute name="style" type="xs:string" use="optional"
+			default="0" />
+		<xs:attribute name="k" type="tns:textKey" use="optional" default="name"/>
 		<xs:attribute name="dy" type="xs:float" use="optional"
 			default="0" />
 		<xs:attribute name="font-family" type="tns:fontFamily"
@@ -193,16 +211,22 @@
 		<xs:choice minOccurs="0" maxOccurs="unbounded">
 			<!-- recursion to allow for nested rules -->
 			<xs:element name="rule" type="tns:rule" />
-			
+
 			<xs:element name="area" type="tns:area" />
+			<xs:element name="use-area" type="tns:area" />
 			<xs:element name="caption" type="tns:caption" />
 			<xs:element name="circle" type="tns:circle" />
 			<xs:element name="line" type="tns:line" />
-			<xs:element name="outline" type="tns:outline" />
+			<xs:element name="use-line" type="tns:line" />
+			<xs:element name="outline" type="tns:line" />
+			<xs:element name="use-outline" type="tns:line" />
 			<xs:element name="lineSymbol" type="tns:lineSymbol" />
 			<xs:element name="text" type="tns:text" />
-			<xs:element name="styletext type="xs:string" />
+			<xs:element name="use-text" type="tns:text" />
+			<!-- <xs:element name="styletext type="xs:string" /> -->
 			<xs:element name="symbol" type="tns:symbol" />
+			<!-- outline is defined within rules to match layering -->
+			<xs:element name="style-outline" type="tns:line" />
 		</xs:choice>
 		<xs:attribute name="e" type="tns:elementList" use="required" />
 		<xs:attribute name="k" type="xs:string" use="required" />
@@ -218,14 +242,19 @@
 
 	<!-- rendertheme element -->
 	<xs:complexType name="rendertheme">
-	  <xs:sequence minOccurs="0" maxOccurds="256">
-	  <xs:choice minOccurs="0" maxOccurs="unbounded">
-	  	<xs:element name="style-text" type="tns:text" />
-	  	<xs:element name="style-area" type="tns:area" />
-	  </xs:choice>
-	  </xs:sequence)
-		<xs:sequence minOccurs="0" maxOccurs="unbounded">
-			<xs:element name="rule" type="tns:rule" />
+		<xs:sequence minOccurs="0" maxOccurs="1">
+			<xs:sequence minOccurs="0" maxOccurs="256">
+				<xs:choice minOccurs="0" maxOccurs="unbounded">
+					<xs:element name="style-text" type="tns:text" />
+					<xs:element name="style-area" type="tns:area" />
+					<xs:element name="style-line" type="tns:line" />
+					<xs:element name="style-outline" type="tns:line" />
+				</xs:choice>
+			</xs:sequence>
+			<xs:sequence minOccurs="0" maxOccurs="unbounded">
+			
+				<xs:element name="rule" type="tns:rule" />				
+			</xs:sequence>
 		</xs:sequence>
 		<xs:attribute name="version" type="xs:positiveInteger"
 			use="required" />