diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/OpenAPI2TDLTranslatorNext.java b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/OpenAPI2TDLTranslatorNext.java
index e049eb4bfb615677a454626e6caa1c5a2f2b2bec..eb06290666493edce37eb80fb6ed898fa1575fa4 100644
--- a/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/OpenAPI2TDLTranslatorNext.java
+++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/OpenAPI2TDLTranslatorNext.java
@@ -438,6 +438,9 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator {
 	}
 	
 	private void getAllProperties(Schema<?> schema, Map<String, Schema> properties) {
+		String reference = schema.get$ref();
+		if (reference != null)
+			schema = ModelUtils.getReferencedSchema(model, schema);
 		List<Schema> xOf = schema.getAllOf();
 		if (xOf == null)
 			xOf = schema.getAnyOf();
@@ -705,7 +708,7 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator {
 						}
 						
 					} else  if (type instanceof StructuredDataType) {
-						for (CodegenProperty var: codeGen.getVars()) {
+						for (CodegenProperty var: codeGen.getAllVars()) {
 							String vName = var.getBaseName();
 							Member member = null;
 							for (Member m: ((StructuredDataType) type).allMembers()) {