diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/server/ga4gh/Ga4ghAccessTokenModifier.java b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/server/ga4gh/Ga4ghAccessTokenModifier.java
index 563c0dae92f79da0155f2cc2488968d2e1112493..6f22c86c0cef70ceb3713e4ca933938992318b50 100644
--- a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/server/ga4gh/Ga4ghAccessTokenModifier.java
+++ b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/server/ga4gh/Ga4ghAccessTokenModifier.java
@@ -1,6 +1,7 @@
 package cz.muni.ics.oidc.server.ga4gh;
 
 import com.nimbusds.jwt.JWTClaimsSet;
+import cz.muni.ics.oauth2.model.OAuth2AccessTokenEntity;
 import cz.muni.ics.oidc.server.PerunAccessTokenEnhancer;
 import cz.muni.ics.openid.connect.model.UserInfo;
 import lombok.NoArgsConstructor;
@@ -8,7 +9,10 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.security.oauth2.common.OAuth2AccessToken;
 import org.springframework.security.oauth2.provider.OAuth2Authentication;
 
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.Set;
 
 import static cz.muni.ics.oidc.server.ga4gh.Ga4ghApiClaimSource.GA4GH_SCOPE;
@@ -33,8 +37,15 @@ public class Ga4ghAccessTokenModifier implements PerunAccessTokenEnhancer.Access
 		Set<String> scopes = accessToken.getScope();
 		//GA4GH
 		if (scopes.contains(GA4GH_SCOPE)) {
+			Object originalAud = builder.getClaims().get("aud");
+			Set<String> newAud = new HashSet<>();
+			if (originalAud instanceof String) {
+				newAud.add((String) originalAud);
+			} else if (originalAud instanceof Collection) {
+				newAud.addAll((Collection<String>) originalAud);
+			}
 			log.debug("Adding claims required by GA4GH to access token");
-			builder.audience(Collections.singletonList(authentication.getOAuth2Request().getClientId()));
+			builder.audience(new ArrayList<>(newAud));
 		}
 	}