diff --git a/src/lib66/parser_module.c b/src/lib66/parser_module.c
index 27e89e829f6529f7fa7e446e8973b16910767146..322c0196a9e40fecf26ee43086c4203a710524bc 100644
--- a/src/lib66/parser_module.c
+++ b/src/lib66/parser_module.c
@@ -340,12 +340,14 @@ int parse_module(sv_alltype *sv_before,ssexec_t *info,stralloc *parsed_list,stra
 		svtype = get_svtype_from_file(sv) ;
 		if (svtype == -1) log_warnu_return(LOG_EXIT_ZERO,"get svtype of: ",sv) ;
 
-		if (!stralloc_catb(&sdir,pbname,strlen(pbname) + 1))
-			log_warnsys_return(LOG_EXIT_ZERO,"stralloc") ;
-
-		if (svtype != TYPE_CLASSIC)
-			if (!stralloc_catb(&tmp,pbname,strlen(pbname) + 1)) 
+		if (sastr_cmp(&sdir,pbname) == -1)
+			if (!stralloc_catb(&sdir,pbname,strlen(pbname) + 1))
 				log_warnsys_return(LOG_EXIT_ZERO,"stralloc") ;
+
+		if (sastr_cmp(&tmp,pbname) == -1)
+			if (svtype != TYPE_CLASSIC)
+				if (!stralloc_catb(&tmp,pbname,strlen(pbname) + 1))
+					log_warnsys_return(LOG_EXIT_ZERO,"stralloc") ;
 	}
 
 	sv_before->cname.idga = deps.len ;