diff --git a/android/module.go b/android/module.go
index 07c4e8f..4a8e8ac 100644
--- a/android/module.go
+++ b/android/module.go
@@ -1220,7 +1220,7 @@
 				ctx.ModuleErrorf("srcs dependency %q is not a source file producing module", m)
 			}
 		} else if pathtools.IsGlob(s) {
-			globbedSrcFiles := ctx.Glob(filepath.Join(prefix, s), expandedExcludes)
+			globbedSrcFiles := ctx.GlobFiles(filepath.Join(prefix, s), expandedExcludes)
 			for i, s := range globbedSrcFiles {
 				globbedSrcFiles[i] = s.(ModuleSrcPath).WithSubDir(ctx, subDir)
 			}
@@ -1246,25 +1246,15 @@
 	if err != nil {
 		ctx.ModuleErrorf("glob: %s", err.Error())
 	}
-	return pathsForModuleSrcFromFullPath(ctx, ret)
+	return pathsForModuleSrcFromFullPath(ctx, ret, true)
 }
 
-// glob only "files" under the directory relative to top of the source tree.
 func (ctx *androidModuleContext) GlobFiles(globPattern string, excludes []string) Paths {
-	paths, err := ctx.GlobWithDeps(globPattern, excludes)
+	ret, err := ctx.GlobWithDeps(globPattern, excludes)
 	if err != nil {
 		ctx.ModuleErrorf("glob: %s", err.Error())
 	}
-	var ret []Path
-	for _, p := range paths {
-		if isDir, err := ctx.Fs().IsDir(p); err != nil {
-			ctx.ModuleErrorf("error in IsDir(%s): %s", p, err.Error())
-			return nil
-		} else if !isDir {
-			ret = append(ret, PathForSource(ctx, p))
-		}
-	}
-	return ret
+	return pathsForModuleSrcFromFullPath(ctx, ret, false)
 }
 
 func init() {
diff --git a/android/paths.go b/android/paths.go
index 3b1cea6..ffdb393 100644
--- a/android/paths.go
+++ b/android/paths.go
@@ -228,14 +228,17 @@
 
 // pathsForModuleSrcFromFullPath returns Paths rooted from the module's local
 // source directory, but strip the local source directory from the beginning of
-// each string.
-func pathsForModuleSrcFromFullPath(ctx ModuleContext, paths []string) Paths {
+// each string. If incDirs is false, strip paths with a trailing '/' from the list.
+func pathsForModuleSrcFromFullPath(ctx ModuleContext, paths []string, incDirs bool) Paths {
 	prefix := filepath.Join(ctx.Config().srcDir, ctx.ModuleDir()) + "/"
 	if prefix == "./" {
 		prefix = ""
 	}
 	ret := make(Paths, 0, len(paths))
 	for _, p := range paths {
+		if !incDirs && strings.HasSuffix(p, "/") {
+			continue
+		}
 		path := filepath.Clean(p)
 		if !strings.HasPrefix(path, prefix) {
 			reportPathErrorf(ctx, "Path '%s' is not in module source directory '%s'", p, prefix)
