diff --git a/org.apache.felix.bundlerepository/src/main/java/org/apache/felix/bundlerepository/RepositoryImpl.java b/org.apache.felix.bundlerepository/src/main/java/org/apache/felix/bundlerepository/RepositoryImpl.java
index c4ca31d..ca73ecf 100644
--- a/org.apache.felix.bundlerepository/src/main/java/org/apache/felix/bundlerepository/RepositoryImpl.java
+++ b/org.apache.felix.bundlerepository/src/main/java/org/apache/felix/bundlerepository/RepositoryImpl.java
@@ -108,6 +108,16 @@
         }
     }
 
+    /**
+     * Default setter method when setting parsed data from the XML file,
+     * which currently ignores everything. 
+    **/
+    protected Object put(Object key, Object value)
+    {
+        // Ignore everything for now.
+        return null;
+    }
+
     private void parseRepositoryFile(int hopCount)
     {
 // TODO: OBR - Implement hop count.
@@ -145,13 +155,17 @@
                     }
                 };
 
+                // Get default setter method for Repository.
+                Method repoSetter = RepositoryImpl.class.getDeclaredMethod(
+                    "put", new Class[] { Object.class, Object.class });
+
                 // Get default setter method for Resource.
-                Method resourceSetter = ResourceImpl.class.getDeclaredMethod(
+                Method resSetter = ResourceImpl.class.getDeclaredMethod(
                     "put", new Class[] { Object.class, Object.class });
 
                 // Map XML tags to types.
-                handler.addType("repository", factory, Repository.class, null);
-                handler.addType("resource", ResourceImpl.class, Resource.class, resourceSetter);
+                handler.addType("repository", factory, Repository.class, repoSetter);
+                handler.addType("resource", ResourceImpl.class, Resource.class, resSetter);
                 handler.addType("category", CategoryImpl.class, null, null);
                 handler.addType("require", RequirementImpl.class, Requirement.class, null);
                 handler.addType("capability", CapabilityImpl.class, Capability.class, null);
diff --git a/org.apache.felix.bundlerepository/src/main/java/org/apache/felix/bundlerepository/RequirementImpl.java b/org.apache.felix.bundlerepository/src/main/java/org/apache/felix/bundlerepository/RequirementImpl.java
index d1f6e95..b959f74 100644
--- a/org.apache.felix.bundlerepository/src/main/java/org/apache/felix/bundlerepository/RequirementImpl.java
+++ b/org.apache.felix.bundlerepository/src/main/java/org/apache/felix/bundlerepository/RequirementImpl.java
@@ -118,7 +118,8 @@
                 (m_optional == r.isOptional()) &&
                 (m_multiple == r.isMultiple()) &&
                 m_filter.toString().equals(r.getFilter()) &&
-                m_comment.equals(r.getComment());
+                ((m_comment == r.getComment()) ||
+                    ((m_comment != null) && (m_comment.equals(r.getComment()))));
         }
         return false;
     }
