diff --git a/src/ExprNode.cc b/src/ExprNode.cc
index 7c0e692845bdaa3f0e7d1f0e0d260e8e0bf5dceb..6dc9587bc53dfd233375fd70ec7f235ca7ef7cf9 100644
--- a/src/ExprNode.cc
+++ b/src/ExprNode.cc
@@ -908,6 +908,7 @@ VariableNode::prepareForDerivation()
     case SymbolType::endogenous:
     case SymbolType::parameter:
     case SymbolType::heterogeneousEndogenous:
+    case SymbolType::heterogeneousExogenous:
       non_null_derivatives.insert(getDerivID());
       break;
     case SymbolType::modelLocalVariable:
@@ -915,7 +916,6 @@ VariableNode::prepareForDerivation()
       // Non null derivatives are those of the value of the local parameter
       non_null_derivatives = datatree.getLocalVariable(symb_id, lag)->non_null_derivatives;
       break;
-    case SymbolType::heterogeneousExogenous:
     case SymbolType::heterogeneousParameter:
     case SymbolType::modFileLocalVariable:
     case SymbolType::statementDeclaredVariable:
@@ -1004,11 +1004,11 @@ VariableNode::computeDerivative(int deriv_id)
     case SymbolType::endogenous:
     case SymbolType::parameter:
     case SymbolType::heterogeneousEndogenous:
+    case SymbolType::heterogeneousExogenous:
       if (deriv_id == getDerivID())
         return datatree.One;
       else
         return datatree.Zero;
-    case SymbolType::heterogeneousExogenous:
     case SymbolType::heterogeneousParameter:
       return datatree.Zero;
     case SymbolType::modelLocalVariable: