diff --git a/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/scoping/TDLScopeProvider.java b/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/scoping/TDLScopeProvider.java
index 4238bbde71d6991737a309f71c76b61dd121c28f..904cd360a6070482f2556e42a9b3eb858ed41bce 100644
--- a/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/scoping/TDLScopeProvider.java
+++ b/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/scoping/TDLScopeProvider.java
@@ -564,8 +564,11 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider {
 					NamedElement dataElement = ((DataElementUse) context.eContainer()).getDataElement();
 					//TODO: duplicated from above ->extract
 					if (dataElement instanceof org.etsi.mts.tdl.Function) {
-						IScope scope = Scopes.scopeFor(((org.etsi.mts.tdl.Function)dataElement).getFormalParameter());
-						return scope;
+						DataType returnType = ((org.etsi.mts.tdl.Function)dataElement).getReturnType();
+						if (returnType instanceof StructuredDataType) {
+							IScope scope = Scopes.scopeFor(((StructuredDataType)returnType).allMembers());
+							return scope;
+						}
 					} else if (dataElement instanceof FormalParameter) {
 						IScope scope = Scopes.scopeFor(((StructuredDataType)((FormalParameter) dataElement).getDataType()).allMembers());
 						return scope;