diff --git a/quad/computation_graph/src/computation_graph.c b/quad/computation_graph/src/computation_graph.c
index ac02dc324a23598cc879d36ee6e62fb4b1d3dba2..ad122600a051f8649f8cbbbee3e6eab9e728422e 100644
--- a/quad/computation_graph/src/computation_graph.c
+++ b/quad/computation_graph/src/computation_graph.c
@@ -103,10 +103,14 @@ void graph_compute_node_rec(struct computation_graph *graph, int node_id, int de
             if (graph->nodes[src_cntl_id].processed_state == UNPROCESSED) {
                 graph_compute_node_rec(graph, src_cntl_id, depth + 1);
             }
-            int src_output_id = node->input_srcs[input_id].controller_output;
-            exec_input_vals[input_id] = graph->nodes[src_cntl_id].output_values[src_output_id];
         }
     }
+    // Populate the exec_input_vals array for computation
+    for (input_id = 0; input_id < node->type->n_inputs; input_id++) {
+        int src_cntl_id = node->input_srcs[input_id].controller_id;
+        int src_output_id = node->input_srcs[input_id].controller_output;
+        exec_input_vals[input_id] = graph->nodes[src_cntl_id].output_values[src_output_id];
+    }
     (*node->type->execute)(node->state, node->param_values, exec_input_vals, node->output_values);
     node->processed_state = PROCESSED;
 }
@@ -140,7 +144,7 @@ int export_dot(const struct computation_graph* graph, FILE* of) {
             fprintf(of, "|<f%d> [%s=%.3f]\n", j+1+node->type->n_inputs, node->type->param_names[j],node->param_values[j]);
         }
         fprintf(of, "\"]\n"); // Close label bracket
-        //
+        // Make connections from
         for (j = 0; j < node->type->n_inputs; j++) {
             struct graph_node* src_node = &graph->nodes[node->input_srcs[j].controller_id];
             int output_id = node->input_srcs[j].controller_output;
diff --git a/quad/computation_graph/src/main.c b/quad/computation_graph/src/main.c
index 8be7d30ecdd22650d37e8dfecceebc7baa4f14d0..025781d9a66f87bb6ac22a996e8b5af9fb384bc9 100644
--- a/quad/computation_graph/src/main.c
+++ b/quad/computation_graph/src/main.c
@@ -8,9 +8,9 @@
 int main() {
     struct computation_graph *graph = create_graph();
 
-    int const1 = graph_add_node_const(graph, "Const 1");
+    int const1 = graph_add_node_const(graph, "Const 2");
     graph_set_param_val(graph, const1, CONST_SET, 2);
-    int const2 = graph_add_node_const(graph, "Const 2");
+    int const2 = graph_add_node_const(graph, "Const 1");
     graph_set_param_val(graph, const2, CONST_SET, 3);
 
     int add1_id = graph_add_node_add(graph, "Add");
@@ -22,8 +22,8 @@ int main() {
     graph_set_source(graph, gain1_id, GAIN_INPUT, add1_id, ADD_SUM);
 
     int mult1_id = graph_add_node_mult(graph, "Mult");
-    graph_set_source(graph, mult1_id, MULT_MULTIPLICAND1, gain1_id, GAIN_RESULT);
-    graph_set_source(graph, mult1_id, MULT_MULTIPLICAND2, const1, CONST_VAL);
+    graph_set_source(graph, mult1_id, MULT_MULTIPLICAND2, gain1_id, GAIN_RESULT);
+    graph_set_source(graph, mult1_id, MULT_MULTIPLICAND1, const1, CONST_VAL);
 
     graph_compute_node(graph, mult1_id);