diff --git a/src/shared/cplusplus/Bind.cpp b/src/shared/cplusplus/Bind.cpp
index 762922dc5623f9d48227001bc6bdf19463d350ab..74ae70c839abe50b1187c7e110491ea150104d4b 100644
--- a/src/shared/cplusplus/Bind.cpp
+++ b/src/shared/cplusplus/Bind.cpp
@@ -1684,7 +1684,21 @@ bool Bind::visit(ParameterDeclarationAST *ast)
     type = this->declarator(ast->declarator, type, &declaratorId);
     // unsigned equal_token = ast->equal_token;
     ExpressionTy expression = this->expression(ast->expression);
-    // Argument *symbol = ast->symbol;
+
+    unsigned sourceLocation = ast->firstToken();
+    if (declaratorId)
+        sourceLocation = declaratorId->firstToken();
+
+    const Name *argName = 0;
+    if (declaratorId && declaratorId->name)
+        argName = declaratorId->name->name;
+
+    Argument *arg = control()->newArgument(sourceLocation, argName);
+    arg->setType(type);
+
+    _scope->addMember(arg);
+
+    ast->symbol = arg;
     return false;
 }