diff --git a/grails-core/src/main/groovy/org/grails/spring/context/support/PluginAwareResourceBundleMessageSource.java b/grails-core/src/main/groovy/org/grails/spring/context/support/PluginAwareResourceBundleMessageSource.java
index 34f6f9d365a..ebf28a2a538 100644
--- a/grails-core/src/main/groovy/org/grails/spring/context/support/PluginAwareResourceBundleMessageSource.java
+++ b/grails-core/src/main/groovy/org/grails/spring/context/support/PluginAwareResourceBundleMessageSource.java
@@ -39,10 +39,7 @@
 import java.io.File;
 import java.io.FilenameFilter;
 import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Locale;
-import java.util.Properties;
+import java.util.*;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
@@ -65,6 +62,7 @@ public class PluginAwareResourceBundleMessageSource extends ReloadableResourceBu
     private long pluginCacheMillis = Long.MIN_VALUE;
     private boolean searchClasspath = false;
     private String messageBundleLocationPattern = "classpath*:*.properties";
+    String[] basenamesDefinition = {};
 
     public PluginAwareResourceBundleMessageSource() {
     }
@@ -86,6 +84,12 @@ public void setResourceResolver(PathMatchingResourcePatternResolver resourceReso
         this.resourceResolver = resourceResolver;
     }
 
+    @Override
+    public void setBasenames(String... basenames){
+        basenamesDefinition = basenames;
+        super.setBasenames(basenames);
+    }
+
     public void afterPropertiesSet() throws Exception {
         if (pluginCacheMillis == Long.MIN_VALUE) {
             pluginCacheMillis = cacheMillis;
@@ -148,8 +152,10 @@ public boolean accept(File dir, String name) {
                 basenames.add(baseName);
         }
 
-        setBasenames(basenames.toArray( new String[basenames.size()]));
-
+        List<String> mergedBasenames = new ArrayList<>(Arrays.asList(basenamesDefinition));
+        basenames.removeAll(mergedBasenames);
+        mergedBasenames.addAll(basenames);
+        super.setBasenames(mergedBasenames.toArray(new String[0]));
     }