diff --git a/RELEASE_NOTES.html b/RELEASE_NOTES.html
index 03837a8..08ca59f 100644
--- a/RELEASE_NOTES.html
+++ b/RELEASE_NOTES.html
@@ -53,6 +53,8 @@
 </li>
 <li>[<a href='https://issues.apache.org/jira/browse/S4-129'>S4-129</a>] -         s4 node ignores zk parameter from the command line
 </li>
+<li>[<a href='https://issues.apache.org/jira/browse/S4-130'>S4-130</a>] -         csv output for metrics not working
+</li>
 </ul>
                 
 <h2>        Improvement
@@ -114,5 +116,4 @@
 </li>
 <li>[<a href='https://issues.apache.org/jira/browse/S4-124'>S4-124</a>] -         Update documentation for 0.6.0 release
 </li>
-</ul>
-                    
\ No newline at end of file
+</ul>
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 16f73e1..6823f42 100644
--- a/build.gradle
+++ b/build.gradle
@@ -296,6 +296,7 @@
     exclude ('**/tmp/**')
     exclude ('**/bin/**')
     exclude ('website/**')
+    exclude ('lib/apache-rat-0.8.jar')
     into (baseName+'-'+version+'-'+classifier)
 }
 
diff --git a/subprojects/s4-tools/src/main/java/org/apache/s4/tools/Deploy.java b/subprojects/s4-tools/src/main/java/org/apache/s4/tools/Deploy.java
index 695faf3..72c5145 100644
--- a/subprojects/s4-tools/src/main/java/org/apache/s4/tools/Deploy.java
+++ b/subprojects/s4-tools/src/main/java/org/apache/s4/tools/Deploy.java
@@ -121,7 +121,7 @@
         @Parameter(names = { "-modulesClasses", "-emc", "-mc" }, description = "Fully qualified class names of custom modules")
         List<String> modulesClassesNames = new ArrayList<String>();
 
-        @Parameter(names = { "-namedStringParameters", "-p" }, description = "Comma-separated list of inline configuration parameters, taking precedence over homonymous configuration parameters from configuration files. Syntax: '-p=name1=value1,name2=value2 '", hidden = false, converter = ParsingUtils.InlineConfigParameterConverter.class)
+        @Parameter(names = { "-namedStringParameters", "-p" }, description = "Comma-separated list of inline configuration parameters. Syntax: '-p=name1=value1,name2=value2 '", hidden = false, converter = ParsingUtils.InlineConfigParameterConverter.class)
         List<String> extraNamedParameters = new ArrayList<String>();
 
         @Parameter(names = "-testMode", description = "Special mode for regression testing", hidden = true)
diff --git a/website/content/doc/0.6.0/configuration.md b/website/content/doc/0.6.0/configuration.md
index 7bd093e..c98ca74 100644
--- a/website/content/doc/0.6.0/configuration.md
+++ b/website/content/doc/0.6.0/configuration.md
@@ -66,6 +66,11 @@
 Example:
 `./s4 node -c=cluster1 -zk=host.domain.com`
 
+## Overriding node configuration
+By default, nodes read configuration from configuration files in the classpath `default.s4.base.properties`, `default.s4.comm.properties` and `default.s4.core.properties`.
+
+It is possible to override these parameters by using the `-p` option when starting a node.
+
 
 # Application configuration
 
@@ -130,7 +135,7 @@
 
 ~~~
 
-* specifying the parameter value at node startup (using `-p` inline with the node command, or with the '`@`' syntax)
+* specifying the parameter value when deploying the application (using `-p` inline with the node command, or with the '`@`' syntax)
 
 S4 uses an internal Guice module that automatically injects configuration parameters passed through the deploy command to matching `@Named` parameters.
 
@@ -140,6 +145,11 @@
 	-emc=org.apache.s4.core.ft.FileSystemBackendCheckpointingModule \ 
 	-p=s4.checkpointing.filesystem.storageRootPath=/custom/path 
 
+
+> Make sure you pass overriding **platform** parameters through the `-p` option in the `node` command, and pass **application** parameters through the `-p` option in the `deploy` command.
+
+
+
 ## File-based configuration
 
 Instead of specifying node parameters inline, you may refer to a file with the '@' notation:
diff --git a/website/content/index.haml b/website/content/index.haml
index 5318e4b..283d3e3 100644
--- a/website/content/index.haml
+++ b/website/content/index.haml
@@ -5,7 +5,7 @@
   #about{:class=>"span-18 last"}
 
     #notice{:class=>"span-17 last"}
-      #notice_text= "March 2013: <b>S4 0.6.0 Release Candidate</b> <a href='http://people.apache.org/~mmorel/s4-0.6.0-incubating-release-candidate-2/'>available for download</a>. Check the <a href='/doc/0.6.0'>improved documentation</a>!."
+      #notice_text= "March 2013: <b>S4 0.6.0 Release Candidate</b> <a href='http://people.apache.org/~mmorel/s4-0.6.0-incubating-release-candidate-3/'>available for download</a>. Check the <a href='/doc/0.6.0'>improved documentation</a>!."
 
     #notice{:class=>"span-17 last"}
       #notice_text= "August 2012: <b>S4 0.5.0 has been released!</b> Get it <a href='/download'>here</a>!."
