diff --git a/Src/java/cql-to-elm/src/main/java/org/cqframework/cql/cql2elm/Cql2ElmVisitor.java b/Src/java/cql-to-elm/src/main/java/org/cqframework/cql/cql2elm/Cql2ElmVisitor.java
index <HASH>..<HASH> 100755
--- a/Src/java/cql-to-elm/src/main/java/org/cqframework/cql/cql2elm/Cql2ElmVisitor.java
+++ b/Src/java/cql-to-elm/src/main/java/org/cqframework/cql/cql2elm/Cql2ElmVisitor.java
@@ -2836,7 +2836,12 @@ public class Cql2ElmVisitor extends cqlBaseVisitor {
             catch (Exception e) {
                 // If something goes wrong attempting to resolve, just set to the expression and report it as a warning,
                 // it shouldn't prevent translation unless the modelinfo indicates strict retrieve typing
-                retrieve.setCodes(terminology);
+                if (!(terminology.getResultType() instanceof ListType)) {
+                    retrieve.setCodes(libraryBuilder.resolveToList(terminology));
+                }
+                else {
+                    retrieve.setCodes(terminology);
+                }
                 // ERROR:
                 // WARNING:
                 libraryBuilder.recordParsingException(new CqlSemanticException("Could not resolve membership operator for terminology target of the retrieve.",
#<I>: Fixed retrieve incorrectly inserting a list promotion for a direct-code reference in some cases.