diff --git a/src/shared/cplusplus/Control.cpp b/src/shared/cplusplus/Control.cpp
index fee0ee3d94200b88ce66f3f65e4312191659d28d..249d671ae178f2695cfbc7fc517928758ceb5c8b 100644
--- a/src/shared/cplusplus/Control.cpp
+++ b/src/shared/cplusplus/Control.cpp
@@ -89,16 +89,7 @@ public:
         : control(control),
           translationUnit(0),
           diagnosticClient(0)
-    {
-        objcGetterId = control->findOrInsertIdentifier("getter");
-        objcSetterId = control->findOrInsertIdentifier("setter");
-        objcReadwriteId = control->findOrInsertIdentifier("readwrite");
-        objcReadonlyId = control->findOrInsertIdentifier("readonly");
-        objcAssignId = control->findOrInsertIdentifier("assign");
-        objcRetainId = control->findOrInsertIdentifier("retain");
-        objcCopyId = control->findOrInsertIdentifier("copy");
-        objcNonatomicId = control->findOrInsertIdentifier("nonatomic");
-    }
+    {}
 
     ~Data()
     {
@@ -599,7 +590,18 @@ public:
 };
 
 Control::Control()
-{ d = new Data(this); }
+{
+    d = new Data(this);
+
+    d->objcGetterId = findOrInsertIdentifier("getter");
+    d->objcSetterId = findOrInsertIdentifier("setter");
+    d->objcReadwriteId = findOrInsertIdentifier("readwrite");
+    d->objcReadonlyId = findOrInsertIdentifier("readonly");
+    d->objcAssignId = findOrInsertIdentifier("assign");
+    d->objcRetainId = findOrInsertIdentifier("retain");
+    d->objcCopyId = findOrInsertIdentifier("copy");
+    d->objcNonatomicId = findOrInsertIdentifier("nonatomic");
+}
 
 Control::~Control()
 { delete d; }