diff --git a/karaf/README b/karaf/README
index 831e3f3..bc6a670 100644
--- a/karaf/README
+++ b/karaf/README
@@ -53,6 +53,8 @@
 RELEASE-NOTES for installation instructions and list of supported 
 and unsupported features.
 
+The PDF manual is the right place to find any information about Karaf.
+
 Alternatively, you can also find out how to get started here:
     http://felix.apache.org/site/apache-felix-karaf.html
 
diff --git a/karaf/RELEASE-NOTES b/karaf/RELEASE-NOTES
index 2daadb1..c171666 100644
--- a/karaf/RELEASE-NOTES
+++ b/karaf/RELEASE-NOTES
@@ -15,6 +15,107 @@
  * limitations under the License.
  */
 
+                    Apache Felix Karaf 1.2.0
+                    ========================
+
+  Overview
+  --------
+
+ This release is mostly a bug fix release and contains a lot of bug fixes and improvements in the console,
+ commands, features service, instance administration.  The binary distribution now also includes the user's
+ manual in pdf and html formats.
+
+  Changelog
+  ---------
+
+ The following list shows the bug fixes and enhancements included in this release:
+
+** Sub-task
+    * [FELIX-1701] - Aggregate all the Karaf related pages in one single Confluence page using the include macro
+
+** Bug
+    * [FELIX-1620] - Script for running the created Karaf instances with a console
+    * [FELIX-1626] - Configuration loaded from the etc/ directory are only available after a delay
+    * [FELIX-1638] - [karaf] The branding properties load can't find the external branding file
+    * [FELIX-1642] - osgi:shutdown just hang when use karaf-client.jar
+    * [FELIX-1660] - karaf should not hardcode the "system" location of its maven-like repository
+    * [FELIX-1681] - Bundles of webconsole feature are not assembled into distribution packages
+    * [FELIX-1705] - [Karaf] Hot undeploy does not work after a Karaf restart
+    * [FELIX-1715] - osgi:update on xml deployments will cause ZIPExceptions
+    * [FELIX-1717] - osgi:list column for spring is sometimes filled and sometimes not
+    * [FELIX-1723] - [Karaf] Slave instances on same host as Master instance does not properly lock.
+    * [FELIX-1728] - Karaf itest fail on IBM JDK due to Pax Exam annotations not found
+    * [FELIX-1730] - When displaying help for commands, arguments are not ordered correctly
+    * [FELIX-1745] - Unable to alter/unset a log level after it has been set from the console
+    * [FELIX-1751] - [karaf] admin:start silently fails to launch new instance
+    * [FELIX-1766] - Refactor and enable AdminServiceMBean
+    * [FELIX-1768] - should catch exception for FeaturesServiceImpl.internalAddRepository per uri
+    * [FELIX-1771] - Feature deployer is broken on windows
+    * [FELIX-1777] - Hitting backspace beyond last character causes LOUD BEEP
+    * [FELIX-1778] - instances/myinst/bin/karaf.bat leaks environment variables to shell
+    * [FELIX-1779] - The port for the jmx server needs to be configured at two locations
+    * [FELIX-1784] - install one feature failed in org.apache.felix.karaf.features.cfg featuresBoot list shouldn't block install other features in this list
+    * [FELIX-1786] - The features deployment listener tacks installed bundles and force their resolution
+    * [FELIX-1793] - ensure launch karaf java process from KARAF_BASE folder
+    * [FELIX-1799] - Hot-deployment does not work on admin:create'd instances
+    * [FELIX-1801] - Case insensitive grep outputs all uppercase in match results
+    * [FELIX-1802] - Grep command line prefix (-n) not working properly
+    * [FELIX-1803] - Unable to edit or backspace on multiline commands
+    * [FELIX-1805] - Upgrade equinox to 3.5.1
+    * [FELIX-1817] - Backspace does not work anymore when connecting from the karaf-client
+    * [FELIX-1818] - Ctrl-C kills the karaf-client, but it should be sent to the server
+    * [FELIX-1855] - exec command eats first keystroke of subsequent commands
+    * [FELIX-1857] - Backspace not working when using admin:connect
+    * [FELIX-1858] - Remote commands via ssh only work once per restart
+    * [FELIX-1869] - Need better UI feedback when features commands fail
+    * [FELIX-1877] - karaf.main.BootstrapLogManager possible resource leak and ignored exception in open method.
+    * [FELIX-1878] - karaf.main.Main possible resource leaks and ignored exceptions from mkdirs().
+    * [FELIX-1887] - The stop script can't be used if the user or password has been changed
+    * [FELIX-1888] - The karaf client hangs if the authentication fails
+    * [FELIX-1899] - Karaf itest (CoreTest) fails on slower CI machines
+
+** Improvement
+    * [FELIX-1064] - New goal for the features-maven-plugin: validate a features xml file
+    * [FELIX-1207] - [PATCH] Ignore files generated by mvn:eclipse
+    * [FELIX-1643] - Improvements / Fixes for Karaf commands and their helps
+    * [FELIX-1655] - Provide an additional argument to the Karaf admin:create command that specifies the featuresBoot
+    * [FELIX-1675] - karaf web demo README references old servicemix-client.jar
+    * [FELIX-1682] - The newly installed bundles for a feature should be uninstalled when feature install failed
+    * [FELIX-1689] - When deploying a feature, we need to refresh some bundles to cope with newly resolved optional dependencies
+    * [FELIX-1693] - [karaf][shell] Make "system bundles" start level configurable via properties
+    * [FELIX-1694] - [karaf][shell] Do not print stack traces on exceptions
+    * [FELIX-1700] - Create quality PDF manual for Karaf
+    * [FELIX-1706] - Highlight grep matches
+    * [FELIX-1707] - Add OSGi framework information to InfoAction
+    * [FELIX-1718] - karaf shell config:update command should persist / override configurations from the etc/ folder
+    * [FELIX-1729] - The if / each commands are not available in the console
+    * [FELIX-1737] - Upgrade to fileinstall 2.0.4
+    * [FELIX-1744] - Add a -C/--context option to shell:grep
+    * [FELIX-1748] - Make the command history persistent across restarts
+    * [FELIX-1749] - Improve log:set command - add auto-completion for log levels and support lower case level
+    * [FELIX-1752] - [Karaf] Extend DefaultJDBCLock to support MySQL out of the box.
+    * [FELIX-1755] - Provide a script file that would be loaded when starting a new shell (to create closures, etc...)
+    * [FELIX-1757] - Completer for session scopes
+    * [FELIX-1759] - Upgrade to latest webconsole
+    * [FELIX-1772] - Upgrade to felix framework 2.0.1
+    * [FELIX-1791] - Update to the karaf web demo readme.
+    * [FELIX-1810] - Improvements to Main startup class
+    * [FELIX-1882] - [karaf] karaf-client should have the option to retry connection establishment
+
+** New Feature
+    * [FELIX-1656] - new Shell command: shell:clear
+
+** Task
+    * [FELIX-1091] - Re-enable gshell integration tests on windows
+    * [FELIX-1761] - Include felix as a platform for the karaf integration tests
+    * [FELIX-1762] - Upgrade to pax-web 0.7.1
+    * [FELIX-1763] - Upgrade to latest pax-url
+    * [FELIX-1848] - Include instance name in the JMX ObjectName for AdminService and FeaturesService MBeans
+    * [FELIX-1849] - Provide Instance details for root instance via AdminServiceMBean.getInstances() attribute
+    * [FELIX-1850] - Expose additional isRoot attribute on AdminServiceMBean
+    * [FELIX-1892] - Upgrade to sshd-0.3.0, mina-2.0.0-RC1, gogo-0.2.2, jansi-1.1
+
+
 
                     Apache Felix Karaf 1.0.0
                     ========================
@@ -36,8 +137,8 @@
  list of changes.
 
 
- Changelog
- ---------
+  Changelog
+  ---------
 
  The following list shows the bug fixes and enhancements included in this release:
 
@@ -98,12 +199,12 @@
      * [FELIX-1110] - Refactor filemonitor / deployers inside a deployer sub module
      * [FELIX-1112] - [PATCH] Allow osgi/start command to specify more than one bundle per command entry
      * [FELIX-1115] - Use better version ranges for imports
-     * [FELIX-1121] - Add feature for installing Felix Web Console 
+     * [FELIX-1121] - Add feature for installing Felix Web Console
      * [FELIX-1126] - No errors are generated for a bad URL passed to the "features/addUrl", "features/refreshUrl", or "features/list" commands.
      * [FELIX-1127] - Add a name for a repository
      * [FELIX-1133] - Allow usage of fragments in Karaf features
      * [FELIX-1149] - Describe ConfigAdmin configurations using metatype
-     * [FELIX-1150] - Upgrade to SpringDM and SpringFramework 
+     * [FELIX-1150] - Upgrade to SpringDM and SpringFramework
      * [FELIX-1172] - Rebrand Karaf locking mechanism.
      * [FELIX-1180] - Improve Karaf DefaultJDBCLock to use proper logging mechanism instead of System err prints.
      * [FELIX-1196] - Felix Web Console can't list Karaf features
diff --git a/karaf/manual/NOTICE b/karaf/manual/NOTICE
new file mode 100644
index 0000000..595fab4
--- /dev/null
+++ b/karaf/manual/NOTICE
@@ -0,0 +1,23 @@
+Apache Felix Karaf
+Copyright 2009 The Apache Software Foundation
+
+
+I. Included Software
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+Licensed under the Apache License 2.0.
+
+The PDF manual has been generated using http://www.princexml.com/
+and contains an attribution which should not be removed by
+licensee.
+
+II. Used Software
+
+This product uses software developed at
+The OSGi Alliance (http://www.osgi.org/).
+Copyright (c) OSGi Alliance (2000, 2009).
+Licensed under the Apache License 2.0.
+
+III. License Summary
+- Apache License 2.0
