diff --git a/matlab/print_expectations.m b/matlab/print_expectations.m
index 89be53633074e74b5b660725daa98919422be7f9..d53a3238d8c0c23aaa8f9a708055591148b7f0f5 100644
--- a/matlab/print_expectations.m
+++ b/matlab/print_expectations.m
@@ -361,32 +361,35 @@ if isequal(expectationmodelkind, 'pac') && growth_correction
         pgrowth = M_.params(expectationmodel.growth_neutrality_param_index);
         for iter = 1:numel(expectationmodel.growth_linear_comb)
             vgrowth='';
+            variable = [];
             if expectationmodel.growth_linear_comb(iter).exo_id > 0
                 variable = M_.exo_names{expectationmodel.growth_linear_comb(iter).exo_id};
             elseif expectationmodel.growth_linear_comb(iter).endo_id > 0
                 variable = M_.endo_names{expectationmodel.growth_linear_comb(iter).endo_id};
             end
-            [variable, transformations] = rewrite_aux_variable(variable, M_);
-            if isempty(transformations)
-                if expectationmodel.growth_linear_comb(iter).lag ~= 0
-                    variable = sprintf('%s(%d)', variable, expectationmodel.growth_linear_comb(iter).lag);
-                end
-            else
-                for k=rows(transformations):-1:1
-                    if isequal(transformations{k,1}, 'lag')
-                        variable = sprintf('%s.lag(%u)', variable, -transformations{k,2});
-                    elseif isequal(transformations{k,1}, 'diff')
-                        if isempty(transformations{k,2})
-                            variable = sprintf('%s.%s()', variable, transformations{k,1});
+            if ~isempty(variable)
+                [variable, transformations] = rewrite_aux_variable(variable, M_);
+                if isempty(transformations)
+                    if expectationmodel.growth_linear_comb(iter).lag ~= 0
+                        variable = sprintf('%s(%d)', variable, expectationmodel.growth_linear_comb(iter).lag);
+                    end
+                else
+                    for k=rows(transformations):-1:1
+                        if isequal(transformations{k,1}, 'lag')
+                            variable = sprintf('%s.lag(%u)', variable, -transformations{k,2});
+                        elseif isequal(transformations{k,1}, 'diff')
+                            if isempty(transformations{k,2})
+                                variable = sprintf('%s.%s()', variable, transformations{k,1});
+                            else
+                                variable = sprintf('%s(-%u).%s()', variable, transformations{k,2}, transformations{k,1});
+                            end
                         else
-                            variable = sprintf('%s(-%u).%s()', variable, transformations{k,2}, transformations{k,1});
+                            variable = sprintf('%s.%s()', variable, transformations{k});
                         end
-                    else
-                        variable = sprintf('%s.%s()', variable, transformations{k});
                     end
                 end
+                vgrowth = strcat('dbase.', variable);
             end
-            vgrowth = strcat('dbase.', variable);
             if expectationmodel.growth_linear_comb(iter).param_id > 0
                 if ~isempty(vgrowth)
                     vgrowth = sprintf('%1.16f*%s',M_.params(expectationmodel.growth_linear_comb(iter).param_id), vgrowth);
@@ -408,8 +411,8 @@ if isequal(expectationmodelkind, 'pac') && growth_correction
                     linearCombination = sprintf('%s-%s', linearCombination, vgrowth);
                 end
             else
-                linearCombination = vgrowth;
-            end
+                    linearCombination = vgrowth;
+                end
         end % loop over growth linear combination elements
         growthcorrection = sprintf('%1.16f*(%s)', pgrowth, linearCombination);
     else
@@ -419,32 +422,35 @@ if isequal(expectationmodelkind, 'pac') && growth_correction
                 pgrowth = targetcoefficients(i)*M_.params(expectationmodel.components(i).growth_neutrality_param_index);
                 for iter = 1:numel(expectationmodel.components(i).growth_linear_comb)
                     vgrowth='';
+                    variable=[];
                     if expectationmodel.components(i).growth_linear_comb(iter).exo_id > 0
                         variable = M_.exo_names{expectationmodel.components(i).growth_linear_comb(iter).exo_id};
                     elseif expectationmodel.components(i).growth_linear_comb(iter).endo_id > 0
                         variable = M_.endo_names{expectationmodel.components(i).growth_linear_comb(iter).endo_id};
                     end
-                    [variable, transformations] = rewrite_aux_variable(variable, M_);
-                    if isempty(transformations)
-                        if expectationmodel.components(i).growth_linear_comb(iter).lag ~= 0
-                            variable = sprintf('%s(%d)', variable, expectationmodel.components(i).growth_linear_comb(iter).lag);
-                        end
-                    else
-                        for k=rows(transformations):-1:1
-                            if isequal(transformations{k,1}, 'lag')
-                                variable = sprintf('%s.lag(%u)', variable, -transformations{k,2});
-                            elseif isequal(transformations{k,1}, 'diff')
-                                if isempty(transformations{k,2})
-                                    variable = sprintf('%s.%s()', variable, transformations{k,1});
+                    if ~isempty(variable)
+                        [variable, transformations] = rewrite_aux_variable(variable, M_);
+                        if isempty(transformations)
+                            if expectationmodel.components(i).growth_linear_comb(iter).lag ~= 0
+                                variable = sprintf('%s(%d)', variable, expectationmodel.components(i).growth_linear_comb(iter).lag);
+                            end
+                        else
+                            for k=rows(transformations):-1:1
+                                if isequal(transformations{k,1}, 'lag')
+                                    variable = sprintf('%s.lag(%u)', variable, -transformations{k,2});
+                                elseif isequal(transformations{k,1}, 'diff')
+                                    if isempty(transformations{k,2})
+                                        variable = sprintf('%s.%s()', variable, transformations{k,1});
+                                    else
+                                        variable = sprintf('%s(-%u).%s()', variable, transformations{k,2}, transformations{k,1});
+                                    end
                                 else
-                                    variable = sprintf('%s(-%u).%s()', variable, transformations{k,2}, transformations{k,1});
+                                    variable = sprintf('%s.%s()', variable, transformations{k});
                                 end
-                            else
-                                variable = sprintf('%s.%s()', variable, transformations{k});
                             end
                         end
+                        vgrowth = strcat('dbase.', variable);
                     end
-                    vgrowth = strcat('dbase.', variable);
                     if expectationmodel.components(i).growth_linear_comb(iter).param_id > 0
                         if ~isempty(vgrowth)
                             vgrowth = sprintf('%1.16f*%s',M_.params(expectationmodel.components(i).growth_linear_comb(iter).param_id), vgrowth);
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 8d007ff13754f973f53ddc1b708030703894d5fb..62da3ef47a0ebd1f177991b7f52d914194573bca 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -531,6 +531,7 @@ ECB_MODFILES = \
 	pac/var-11e/example1.mod \
 	pac/var-12/example1.mod \
 	pac/var-12/example2.mod \
+	pac/var-12/example4.mod \
 	pac/var-12/example11.mod \
 	pac/var-12/example12.mod \
 	pac/trend-component-1/example1.mod \
diff --git a/tests/pac/var-12/example4.mod b/tests/pac/var-12/example4.mod
new file mode 100644
index 0000000000000000000000000000000000000000..ef709aa25cbaf72d9cb48d629440f80d6b682b14
--- /dev/null
+++ b/tests/pac/var-12/example4.mod
@@ -0,0 +1,69 @@
+// --+ options: json=compute, stochastic +--
+
+var y x z v;
+
+varexo ex ey ez ;
+
+parameters a_y_1 a_y_2 b_y_1 b_y_2 b_x_1 b_x_2 d_y; // VAR parameters
+
+parameters beta e_c_m c_z_1 c_z_2;               // PAC equation parameters
+
+a_y_1 =  .2;
+a_y_2 =  .3;
+b_y_1 =  .1;
+b_y_2 =  .4;
+b_x_1 = -.1;
+b_x_2 = -.2;
+d_y = .5;
+
+
+beta  =  .9;
+e_c_m =  .1;
+c_z_1 =  .7;
+c_z_2 = -.3;
+
+var_model(model_name=toto, structural, eqtags=['eq:x', 'eq:y']);
+
+pac_model(auxiliary_model_name=toto, discount=beta, model_name=pacman);
+
+pac_target_info(pacman);
+  target v;
+  auxname_target_nonstationary vns;
+
+  component y;
+  growth 0;
+  auxname pv_y_;
+  kind dl;
+
+  component x;
+  growth diff(x(-2));
+  auxname pv_dx_;
+  kind dd;
+
+end;
+
+model;
+
+  [name='eq:y']
+  y = a_y_1*y(-1) + a_y_2*diff(x(-1)) + b_y_1*y(-2) + b_y_2*diff(x(-2)) + ey ;
+
+
+  [name='eq:x']
+  diff(x) = b_x_1*y(-2) + b_x_2*diff(x(-1)) + ex ;
+
+  [name='eq:v']
+  v = x + d_y*y ;
+
+  [name='eq:pac']
+  diff(z) = e_c_m*(pac_target_nonstationary(pacman)-z(-1)) + c_z_1*diff(z(-1))  + c_z_2*diff(z(-2)) + pac_expectation(pacman) + ez;
+
+end;
+
+// Initialize the PAC model (build the Companion VAR representation for the auxiliary model).
+pac.initialize('pacman');
+
+// Update the parameters of the PAC expectation model (h0 and h1 vectors).
+pac.update.expectation('pacman');
+
+// Print expanded PAC_EXPECTATION term.
+pac.print('pacman', 'eq:pac');