diff --git a/gradle_plugins/src/main/groovy/org/ros/gradle_plugins/CatkinPlugin.groovy b/gradle_plugins/src/main/groovy/org/ros/gradle_plugins/CatkinPlugin.groovy
index f1e63336ae941c9a81fe3dc3b3a4de08be47da83..3729c5be281f17599de389c007904e553fc89c26 100644
--- a/gradle_plugins/src/main/groovy/org/ros/gradle_plugins/CatkinPlugin.groovy
+++ b/gradle_plugins/src/main/groovy/org/ros/gradle_plugins/CatkinPlugin.groovy
@@ -171,7 +171,11 @@ class CatkinPackage {
         p.group = 'org.ros.rosjava_messages'
         p.dependencies.add("compile", 'org.ros.rosjava_bootstrap:message_generation:[0.1,0.2)')
         messageDependencies().each { d ->
-            p.dependencies.add("compile", 'org.ros.rosjava_messages:' + d + ':[0.1,)')
+            if ( p.getParent().getChildProjects().containsKey(d) ) {
+                p.dependencies.add("compile", p.dependencies.project(path: ':' + d))
+            } else {
+                p.dependencies.add("compile", 'org.ros.rosjava_messages:' + d + ':[0.1,)')
+            }
         }
         def generatedSourcesDir = "${p.buildDir}/generated-src"
         def generateSourcesTask = p.tasks.create("generateSources", JavaExec)