diff --git a/src/main/java/com/rackspace/cloud/api/docs/CalabashHelper.java b/src/main/java/com/rackspace/cloud/api/docs/CalabashHelper.java
index <HASH>..<HASH> 100644
--- a/src/main/java/com/rackspace/cloud/api/docs/CalabashHelper.java
+++ b/src/main/java/com/rackspace/cloud/api/docs/CalabashHelper.java
@@ -51,9 +51,9 @@ public class CalabashHelper {
 
                 strBuff
                     .append("<c:param name=\"")
-                    .append(entry.getKey())
+                    .append(escapeXmlAttribute(entry.getKey()))
                     .append("\" namespace=\"\" value=\"")
-                    .append(rawValue)
+                    .append(escapeXmlAttribute(rawValue))
                     .append("\"/>");
             }
         }
@@ -74,6 +74,18 @@ public class CalabashHelper {
         return sources.get(0);
     }
 
+    private static String escapeXmlAttribute(String value) {
+        if (value == null) {
+            return "";
+        }
+
+        return value
+            .replace("&", "&amp;")
+            .replace("\"", "&quot;")
+            .replace("'", "&apos;")
+            .replace("%", "&#37;");
+    }
+
     /**
      * Creates a {@link Source} for use in a Calabash pipeline.
      *
Make sure to escape parameter values since they are pass as XML attributes