diff --git a/karaf/main/NOTICE b/karaf/main/NOTICE
new file mode 100644
index 0000000..4bf60b6
--- /dev/null
+++ b/karaf/main/NOTICE
@@ -0,0 +1,21 @@
+Apache Felix Karaf :: Main
+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.
+
+
+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
diff --git a/karaf/main/pom.xml b/karaf/main/pom.xml
index ae4bf09..5beddd4 100644
--- a/karaf/main/pom.xml
+++ b/karaf/main/pom.xml
@@ -33,6 +33,10 @@
     <version>0.9.0-SNAPSHOT</version>
     <name>Apache Felix Karaf :: Main</name>
 
+    <properties>
+        <appendedResourcesDirectory>${basedir}/../etc/appended-resources</appendedResourcesDirectory>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.eclipse</groupId>
@@ -63,6 +67,7 @@
                         <Bundle-Description>OSGi R4 framework.</Bundle-Description>
                         <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
                         <Export-Package>org.apache.felix.karaf.main.spi.*;version=${pom.version}</Export-Package>
+                        <Include-Resource>{maven-resources},META-INF/NOTICE=NOTICE</Include-Resource>
                         <!--
                         <Private-Package>
                             org.apache.felix.*;-split-package:=merge-first,
diff --git a/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java b/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java
index ab2838c..270ed4a 100644
--- a/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java
+++ b/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java
@@ -149,8 +149,8 @@
         karafHome = Utils.getKarafHome();
         karafBase = Utils.getKarafBase(karafHome);
 
-        //System.out.println("Karaf Home: "+main.servicemixHome.getPath());
-        //System.out.println("Karaf Base: "+main.servicemixBase.getPath());
+        //System.out.println("Karaf Home: "+main.karafHome.getPath());
+        //System.out.println("Karaf Base: "+main.karafBase.getPath());
 
         System.setProperty(PROP_KARAF_HOME, karafHome.getPath());
         System.setProperty(PROP_KARAF_BASE, karafBase.getPath());
diff --git a/karaf/main/src/main/java/org/apache/felix/karaf/main/SimpleFileLock.java b/karaf/main/src/main/java/org/apache/felix/karaf/main/SimpleFileLock.java
index 92373a9..c6fd1fa 100644
--- a/karaf/main/src/main/java/org/apache/felix/karaf/main/SimpleFileLock.java
+++ b/karaf/main/src/main/java/org/apache/felix/karaf/main/SimpleFileLock.java
@@ -40,8 +40,8 @@
             String lock = props.getProperty(PROPERTY_LOCK_DIR);
 
             if (lock != null) {
-                File servicemixLock = getServiceMixLock(new File(lock), props);
-                props.setProperty(PROPERTY_LOCK_DIR, servicemixLock.getPath());
+                File karafLock = getKarafLock(new File(lock), props);
+                props.setProperty(PROPERTY_LOCK_DIR, karafLock.getPath());
             } else {
                 props.setProperty(PROPERTY_LOCK_DIR, System.getProperty(PROP_KARAF_BASE));
             }
@@ -74,7 +74,7 @@
         return lock != null;
     }
 
-    private static File getServiceMixLock(File lock,Properties props) {
+    private static File getKarafLock(File lock,Properties props) {
         File rc = null;
 
         String path = lock.getPath();
