diff --git a/src/main/java/org/apache/sling/installer/api/OsgiInstaller.java b/src/main/java/org/apache/sling/installer/api/OsgiInstaller.java
index 8dd1c64..5d016fd 100644
--- a/src/main/java/org/apache/sling/installer/api/OsgiInstaller.java
+++ b/src/main/java/org/apache/sling/installer/api/OsgiInstaller.java
@@ -81,8 +81,8 @@
 	 * Invalid resources are ignored.
      * @param urlScheme identifies the client.
      * @param resources An array of updated/new resources - might be null
-     * @param ids An array of identifiers for removed resources - might be null
+     * @param idsToRemove An array of identifiers for removed resources - might be null
 	 */
 	void updateResources(String urlScheme, InstallableResource[] resources,
-	        String[] ids);
+	        String[] idsToRemove);
 }
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/installer/core/impl/OsgiInstallerImpl.java b/src/main/java/org/apache/sling/installer/core/impl/OsgiInstallerImpl.java
index 7e8125c..b60685c 100644
--- a/src/main/java/org/apache/sling/installer/core/impl/OsgiInstallerImpl.java
+++ b/src/main/java/org/apache/sling/installer/core/impl/OsgiInstallerImpl.java
@@ -418,7 +418,7 @@
     @Override
     public void updateResources(final String scheme,
             final InstallableResource[] resources,
-            final String[] ids) {
+            final String[] idsToRemove) {
         this.listener.start();
         try {
             final List<InternalResource> updatedResources = createResources(scheme, resources);
@@ -439,9 +439,9 @@
                         }
                     }
                 }
-                if ( ids != null && ids.length > 0 ) {
+                if ( idsToRemove != null && idsToRemove.length > 0 ) {
                     final Set<String> removedUrls = new HashSet<>();
-                    for(final String id : ids) {
+                    for(final String id : idsToRemove) {
                         final String url = scheme + ':' + id;
                         // Will mark all resources which have r's URL as uninstallable
                         this.urlsToRemove.add(url);
