diff --git a/LanguageRecogniser/Cpp/CppClassDiagramVisitor.cs b/LanguageRecogniser/Cpp/CppClassDiagramVisitor.cs
index 6631e1357a00c4414180a986e9ccc28aa2f1ff97..28d43791ea25cc77b0557517c28d0c0feb346f6a 100644
--- a/LanguageRecogniser/Cpp/CppClassDiagramVisitor.cs
+++ b/LanguageRecogniser/Cpp/CppClassDiagramVisitor.cs
@@ -122,14 +122,14 @@ public class CppClassDiagramVisitor : CPP14ParserBaseVisitor<object>
                         if (aggregationMatch.Success && !string.IsNullOrEmpty(aggregationMatch.Groups[3].Value))
                         {
                             // Aggregation type
-                            string? typeName = aggregationMatch.Groups[2].Value; // Second capturing group
+                            string? typeName = aggregationMatch.Groups[3].Value; // Second capturing group
                             _classes.Last().Value.AddAssociation(typeName, actualAccessSpecifier,
                                 AssociationType.Aggregation);
                         }
                         else if (compositionMatch.Success && !string.IsNullOrEmpty(compositionMatch.Groups[2].Value))
                         {
                             // Composition type
-                            string? typeName = compositionMatch.Groups[2].Value; // Second capturing group
+                            string? typeName = compositionMatch.Groups[3].Value; // Second capturing group
                             _classes.Last().Value.AddAssociation(typeName, actualAccessSpecifier,
                                 AssociationType.Composition);
                         }