diff --git a/scrplugin/generator/changelog.txt b/scrplugin/generator/changelog.txt
index 7499109..f7044d9 100644
--- a/scrplugin/generator/changelog.txt
+++ b/scrplugin/generator/changelog.txt
@@ -5,7 +5,8 @@
     * [FELIX-2963] - scr annotations @Activate @Deactivate @Modified are not detected with class inheritance
     * [FELIX-3117] - NullPointerException when not implementing interface that is defined with @Service
     * [FELIX-3136] - Endless loop: JavaClassDescriptorManager.getJavaClassDescription()
-
+    * [FELIX-3113] - NPE in multi-module Maven project
+    
 
 Changes from 1.1.0 to 1.1.2
 ---------------------------
diff --git a/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/JavaClassDescriptorManager.java b/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/JavaClassDescriptorManager.java
index ecc90fd..4fd2f48 100644
--- a/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/JavaClassDescriptorManager.java
+++ b/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/JavaClassDescriptorManager.java
@@ -243,12 +243,12 @@
                     }
                 }
 
-                // now create map with component descriptions
-                this.componentDescriptions = new HashMap<String, Component>();
-                for ( final Component component : components )
-                {
-                    this.componentDescriptions.put( component.getImplementation().getClassame(), component );
-                }
+            }
+            // now create map with component descriptions
+            this.componentDescriptions = new HashMap<String, Component>();
+            for ( final Component component : components )
+            {
+                this.componentDescriptions.put( component.getImplementation().getClassame(), component );
             }
         }
 
diff --git a/scrplugin/maven-scr-plugin/changelog.txt b/scrplugin/maven-scr-plugin/changelog.txt
index ad52373..832810e 100644
--- a/scrplugin/maven-scr-plugin/changelog.txt
+++ b/scrplugin/maven-scr-plugin/changelog.txt
@@ -6,6 +6,7 @@
     * [FELIX-3117] - NullPointerException when not implementing interface that is defined with @Service
     * [FELIX-3070} - SCR Plugin and dependencies with classifier cause issue depending on the order of dependency in pom.xml
     * [FELIX-3136] - Endless loop: JavaClassDescriptorManager.getJavaClassDescription()
+    * [FELIX-3113] - NPE in multi-module Maven project
 
 
 ** Improvement
diff --git a/scrplugin/scrtask/changelog.txt b/scrplugin/scrtask/changelog.txt
index ed863e5..278368a 100644
--- a/scrplugin/scrtask/changelog.txt
+++ b/scrplugin/scrtask/changelog.txt
@@ -5,6 +5,7 @@
     * [FELIX-2963] - scr annotations @Activate @Deactivate @Modified are not detected with class inheritance
     * [FELIX-3117] - NullPointerException when not implementing interface that is defined with @Service
     * [FELIX-3136] - Endless loop: JavaClassDescriptorManager.getJavaClassDescription()
+    * [FELIX-3113] - NPE in multi-module Maven project
 
 
 Changes from 1.1.0 to 1.1.2
