diff --git a/scrplugin/generator/changelog.txt b/scrplugin/generator/changelog.txt
index 65617da..6f0c597 100644
--- a/scrplugin/generator/changelog.txt
+++ b/scrplugin/generator/changelog.txt
@@ -2,6 +2,8 @@
 ---------------------------
 ** Bug
     * [FELIX-4030] - Generated metatype file contains all metatype infos
+    * [FELIX-3542] - Escape property values used as Metatype default values
+
  
 Changes from 1.5.0 to 1.4.0
 ----------------------------
diff --git a/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/helper/MetatypeAttributeDefinition.java b/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/helper/MetatypeAttributeDefinition.java
index 0d096fe..3870141 100644
--- a/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/helper/MetatypeAttributeDefinition.java
+++ b/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/helper/MetatypeAttributeDefinition.java
@@ -59,7 +59,7 @@
         }
     }
 
-    public Object getDefaultValue() {
+    public String getDefaultValue() {
         return this.defaultValue;
     }
 
diff --git a/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/xml/MetaTypeIO.java b/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/xml/MetaTypeIO.java
index cc2a684..9a55c69 100644
--- a/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/xml/MetaTypeIO.java
+++ b/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/xml/MetaTypeIO.java
@@ -212,6 +212,21 @@
         IOUtils.newline(contentHandler);
     }
 
+    /**
+     * Escape the value according to 105.13.3.21 (validate method)
+     */
+    private static String escapeDefaultValue(final String value) {
+        if ( value == null ) {
+            return value;
+        }
+
+        String result = value.trim();
+        result = result.replace(" ", "\\ ");
+        result = result.replace(",", "\\,");
+        result = result.replace("\\", "\\\\");
+        return result;
+    }
+
     private static void generateAttributeXML(final MetatypeAttributeDefinition ad, final ContentHandler contentHandler)
             throws SAXException {
         final AttributesImpl ai = new AttributesImpl();
@@ -223,11 +238,11 @@
                 if ( i > 0 ) {
                     buf.append(',');
                 }
-                buf.append(ad.getDefaultMultiValue()[i]);
+                buf.append(escapeDefaultValue(ad.getDefaultMultiValue()[i]));
             }
             IOUtils.addAttribute(ai, "default", buf);
         } else {
-            IOUtils.addAttribute(ai, "default", ad.getDefaultValue());
+            IOUtils.addAttribute(ai, "default", escapeDefaultValue(ad.getDefaultValue()));
         }
         IOUtils.addAttribute(ai, "name", ad.getName());
         IOUtils.addAttribute(ai, "description", ad.getDescription());
diff --git a/scrplugin/maven-scr-plugin/changelog.txt b/scrplugin/maven-scr-plugin/changelog.txt
index 904462f..bcdf87f 100644
--- a/scrplugin/maven-scr-plugin/changelog.txt
+++ b/scrplugin/maven-scr-plugin/changelog.txt
@@ -3,6 +3,7 @@
 ** Bug
     * [FELIX-4030] - Generated metatype file contains all metatype infos
     * [FELIX-4023] - SCR-Plugin not working reliably in m2e 1.3.1 
+    * [FELIX-3542] - Escape property values used as Metatype default values
 
 
 Changes from 1.11.0 to 1.10.0
diff --git a/scrplugin/scrtask/changelog.txt b/scrplugin/scrtask/changelog.txt
index cc440f0..73a1571 100644
--- a/scrplugin/scrtask/changelog.txt
+++ b/scrplugin/scrtask/changelog.txt
@@ -2,6 +2,8 @@
 ---------------------------
 ** Bug
     * [FELIX-4030] - Generated metatype file contains all metatype infos
+    * [FELIX-3542] - Escape property values used as Metatype default values
+
 
 Changes from 1.5.0 to 1.4.0
 ----------------------------
