diff --git a/fileinstall/NOTICE b/fileinstall/NOTICE
index 6c87317..cb7eed9 100644
--- a/fileinstall/NOTICE
+++ b/fileinstall/NOTICE
@@ -1,5 +1,5 @@
 Apache Felix File Install
-Copyright 2008 The Apache Software Foundation
+Copyright 2008-2009 The Apache Software Foundation
 
 
 I. Included Software
diff --git a/fileinstall/doc/changelog.txt b/fileinstall/doc/changelog.txt
index cbb425c..e917e6a 100644
--- a/fileinstall/doc/changelog.txt
+++ b/fileinstall/doc/changelog.txt
@@ -1,3 +1,12 @@
+Version 1.0.0
+-------------
+
+** Bug
+    * [FELIX-1036] - FileInstaller spawns multiple watchers for same directory
+
+** Improvement
+    * [FELIX-1055] - Making FileInstall bundle CDC-1.1/Foundation 1.1 compatible
+
 Version 0.9.2
 --------------
 
diff --git a/fileinstall/pom.xml b/fileinstall/pom.xml
index 192adf5..7f624d3 100644
--- a/fileinstall/pom.xml
+++ b/fileinstall/pom.xml
@@ -17,16 +17,18 @@
  under the License.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <parent>
-    <groupId>org.apache.felix</groupId>
-    <artifactId>felix</artifactId>
-    <version>1.0.4</version>
-    <relativePath>../pom/pom.xml</relativePath>
-  </parent>
+	<parent>
+		<groupId>org.apache.felix</groupId>
+		<artifactId>felix-parent</artifactId>
+		<version>1.2.0</version>
+		<relativePath>../../pom/pom.xml</relativePath>
+	</parent>
+	
   <modelVersion>4.0.0</modelVersion>
   <packaging>bundle</packaging>
   <name>Apache Felix File Install</name>
   <description>A utility to automatically install bundles from a directory.</description>
+  <url>http://felix.apache.org/site/apache-felix-file-install.html</url>
   <version>0.9.3-SNAPSHOT</version>
   <artifactId>org.apache.felix.fileinstall</artifactId>
   <dependencies>
diff --git a/fileinstall/src/main/java/org/apache/felix/fileinstall/util/Util.java b/fileinstall/src/main/java/org/apache/felix/fileinstall/util/Util.java
index acb87ce..88c0f49 100644
--- a/fileinstall/src/main/java/org/apache/felix/fileinstall/util/Util.java
+++ b/fileinstall/src/main/java/org/apache/felix/fileinstall/util/Util.java
@@ -22,7 +22,6 @@
 import java.util.Dictionary;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.Properties;
 
 
 public class Util
diff --git a/fileinstall/src/test/java/org/apache/felix/fileinstall/DirectoryWatcherTest.java b/fileinstall/src/test/java/org/apache/felix/fileinstall/DirectoryWatcherTest.java
index 062cdae..0326ef5 100644
--- a/fileinstall/src/test/java/org/apache/felix/fileinstall/DirectoryWatcherTest.java
+++ b/fileinstall/src/test/java/org/apache/felix/fileinstall/DirectoryWatcherTest.java
@@ -159,7 +159,7 @@
         mockBundleContextControl.setReturnValue( null );
         mockBundleContextControl.replay();
         mockPackageAdmin.getBundleType( mockBundle );
-        mockPackageAdminControl.setReturnValue( PackageAdmin.BUNDLE_TYPE_FRAGMENT );
+        mockPackageAdminControl.setReturnValue( new Long(PackageAdmin.BUNDLE_TYPE_FRAGMENT) );
         mockPackageAdminControl.replay();
         mockBundleControl.replay();
 
