diff --git a/SDT/schema4.0/etc/domain.rnc b/SDT/schema4.0/etc/domain.rnc
index 9240b459a71095eaca969e5a8aa7d9dcba21fac9..fc43f18e933d4c75f045adad30caf89fabfdf881 100644
--- a/SDT/schema4.0/etc/domain.rnc
+++ b/SDT/schema4.0/etc/domain.rnc
@@ -139,6 +139,7 @@ ArgDef =
     element Arg {
       attribute name { xsd:Name },
       attribute optional { xsd:boolean }?,
+      attribute default { text }?,
       attribute semanticURI { xsd:anyURI }?,
       DocDef,
       DataTypeDef
@@ -152,6 +153,7 @@ Data =
       attribute writable { xsd:boolean }?,
       attribute readable { xsd:boolean }?,
       attribute eventable { xsd:boolean }?,
+      attribute default { text }?,
       attribute semanticURI { xsd:anyURI }?,
       DocDef,
       DataTypeDef
diff --git a/SDT/schema4.0/src/domain.rng b/SDT/schema4.0/src/domain.rng
index f3746c3e2f3de0ab0083e0ba6295555d858a1d85..22f363d9a1f8c00666edea01c381c3a0a35605cd 100644
--- a/SDT/schema4.0/src/domain.rng
+++ b/SDT/schema4.0/src/domain.rng
@@ -391,6 +391,11 @@
 							<data type="boolean"/>
 						</attribute>
 					</optional>
+					<optional>
+						<attribute name="default">
+							<text />
+						</attribute>
+					</optional>
 					<optional>
 						<attribute name="semanticURI">
 							<data type="anyURI"/>
@@ -431,6 +436,11 @@
 							<data type="boolean"/>
 						</attribute>
 					</optional>
+					<optional>
+						<attribute name="default">
+							<text />
+						</attribute>
+					</optional>
 					<optional>
 						<attribute name="semanticURI">
 							<data type="anyURI"/>
diff --git a/SDT/schema4.0/src/domain.xsd b/SDT/schema4.0/src/domain.xsd
index 65139658fccaeb11e9910eb026643c5a115d1359..2094a78750417011f5b9c44bd0b2f1fca68f5739 100644
--- a/SDT/schema4.0/src/domain.xsd
+++ b/SDT/schema4.0/src/domain.xsd
@@ -313,6 +313,7 @@
           </xs:sequence>
           <xs:attribute name="name" use="required" type="xs:Name"/>
           <xs:attribute name="optional" type="xs:boolean"/>
+          <xs:attribute name="default"/>
           <xs:attribute name="semanticURI" type="xs:anyURI"/>
         </xs:extension>
       </xs:complexContent>
@@ -337,6 +338,7 @@
           <xs:attribute name="writable" type="xs:boolean"/>
           <xs:attribute name="readable" type="xs:boolean"/>
           <xs:attribute name="eventable" type="xs:boolean"/>
+          <xs:attribute name="default"/>
           <xs:attribute name="semanticURI" type="xs:anyURI"/>
         </xs:extension>
       </xs:complexContent>
diff --git a/SDT/schema4.0/test/arg-test.xml b/SDT/schema4.0/test/arg-test.xml
index 6836bbea525449f07d7327915472fded1b3142ed..1ab946844648b6f9dd4aae13003f1b56e36e7609 100644
--- a/SDT/schema4.0/test/arg-test.xml
+++ b/SDT/schema4.0/test/arg-test.xml
@@ -6,7 +6,7 @@
 	<ModuleClasses>
 		<ModuleClass name="TestArg">
 			<Actions>
-				<Action name="testAction">
+				<Action name="testActionOptional">
 					<Args>
 						<Arg name="argMandatory">
 							<DataType>
@@ -20,6 +20,20 @@
 						</Arg>
 					</Args>
 				</Action>
+				<Action name="testActionDefault">
+					<Args>
+						<Arg name="arg1" default="true">
+							<DataType>
+								<SimpleType type="boolean" />
+							</DataType>
+						</Arg>
+						<Arg name="arg2" default="foo">
+							<DataType>
+								<SimpleType type="string" />
+							</DataType>
+						</Arg>
+					</Args>
+				</Action>
 			</Actions>
 		</ModuleClass>
 	</ModuleClasses>