Index: osprey/be/com/constraint_graph.cxx
===================================================================
--- osprey/be/com/constraint_graph.cxx  (revision 3575)
+++ osprey/be/com/constraint_graph.cxx  (working copy)
@@ -1036,8 +1036,8 @@
         if (ST_is_initialized(*base_st) &&
               (_processedInitVals.find(ST_st_idx(base_st)) ==
                _processedInitVals.end())) {
+          _processedInitVals.insert(ST_st_idx(base_st));
           processInitValues(ST_st_idx(base_st));
-          _processedInitVals.insert(ST_st_idx(base_st));
         }
         node = getCGNode(CG_ST_st_idx(base_st), base_offset);
       }
@@ -1182,8 +1182,8 @@
            _processedInitVals.end())) {
         if (Get_Trace(TP_ALIAS,NYSTROM_CG_BUILD_FLAG))
           fprintf(stderr, "Processing symbol value...\n");
+        _processedInitVals.insert(ST_st_idx(base_st));
         processInitValues(ST_st_idx(base_st));
-        _processedInitVals.insert(ST_st_idx(base_st));
       }
       if (Get_Trace(TP_ALIAS,NYSTROM_CG_BUILD_FLAG))
         fprintf(stderr, "End processing symbol value...\n");
@@ -2543,8 +2543,8 @@
   // If this is the first time we encounter this symbol/node
   if (ST_is_initialized(*base_st) &&
       _processedInitVals.find(ST_st_idx(base_st)) == _processedInitVals.end()) {
+    _processedInitVals.insert(ST_st_idx(base_st));
     processInitValues(ST_st_idx(base_st));
-    _processedInitVals.insert(ST_st_idx(base_st));
   }

   n = getCGNode(CG_ST_st_idx(base_st), base_offset);
