diff --git a/miniapp/recipes.cpp b/miniapp/recipes.cpp
index 6c09b52d3e38a18e6a62b946f203f6b0b3ce82bb..df8fbce47ae4b9e71a9e522c40c1fa6a45b40e02 100644
--- a/miniapp/recipes.cpp
+++ b/miniapp/recipes.cpp
@@ -46,7 +46,7 @@ public:
 
 struct cell_connection_endpoint {
     cell_id_type cell;
-    int endpoint_index;
+    unsigned endpoint_index;
 };
 
 struct cell_connection {
@@ -79,8 +79,8 @@ struct probe_distribution {
 };
 
 struct basic_recipe_param {
-    int num_compartments = 1;
-    int num_synapses = 1;
+    unsigned num_compartments = 1;
+    unsigned num_synapses = 1;
     std::string synapse_type = "expsyn";
     float min_connection_delay_ms = 20.0;
     float mean_connection_delay_ms = 20.75;
@@ -92,9 +92,8 @@ public:
     basic_cell_recipe(cell_id_type ncell, basic_recipe_param param, probe_distribution pdist):
         ncell_(ncell), param_(std::move(param)), pdist_(std::move(pdist))
     {
-        using exp_param = std::exponential_distribution<float>::param_type;
-        delay_distribution_.param(exp_param{param_.mean_connection_delay_ms
-                            - param_.min_connection_delay_ms});
+        delay_distribution_param = exp_param{param_.mean_connection_delay_ms
+                            - param_.min_connection_delay_ms};
     }
 
     cell get_cell(cell_id_type i) const override {
@@ -142,7 +141,8 @@ public:
 protected:
     template <typename Rng>
     cell_connection draw_connection_params(Rng& rng) const {
-        float delay = param_.min_connection_delay_ms + delay_distribution_(rng);
+        std::exponential_distribution<float> delay_dist(delay_distribution_param);
+        float delay = param_.min_connection_delay_ms + delay_dist(rng);
         float weight = param_.syn_weight_per_cell/param_.num_synapses;
         return cell_connection{{0, 0}, {0, 0}, weight, delay};
     }
@@ -150,8 +150,10 @@ protected:
     cell_id_type ncell_;
     basic_recipe_param param_;
     probe_distribution pdist_;
-    std::exponential_distribution<float> delay_distribution_;
     static constexpr int basic_cell_segments = 3;
+
+    using exp_param = std::exponential_distribution<float>::param_type;
+    exp_param delay_distribution_param;
 };
 
 class basic_ring_recipe: public basic_cell_recipe {
@@ -166,7 +168,7 @@ public:
         auto gen = std::mt19937(i); // replace this with hashing generator...
 
         cell_id_type prev = i==0? ncell_-1: i-1;
-        for (int t=0; t<param_.num_synapses; ++t) {
+        for (unsigned t=0; t<param_.num_synapses; ++t) {
             cell_connection cc = draw_connection_params(gen);
             cc.source = {prev, 0};
             cc.dest = {i, t};
@@ -192,7 +194,7 @@ public:
 
         std::uniform_int_distribution<cell_id_type> source_distribution(0, ncell_-2);
 
-        for (int t=0; t<param_.num_synapses; ++t) {
+        for (unsigned t=0; t<param_.num_synapses; ++t) {
             auto source = source_distribution(source_gen);
             if (source>=i) ++source;
 
@@ -223,11 +225,11 @@ public:
         std::vector<cell_connection> conns;
         auto conn_param_gen = std::mt19937(i); // replace this with hashing generator...
 
-        for (int t=0; t<param_.num_synapses; ++t) {
-            auto source = t>=(int)i? t+1: t;
+        for (unsigned t=0; t<param_.num_synapses; ++t) {
+            cell_id_type source = t>=i? t+1: t;
             EXPECTS(source<ncell_);
 
-            cell_connection cc = draw_connection_params(gen);
+            cell_connection cc = draw_connection_params(conn_param_gen);
             cc.source = {source, 0};
             cc.dest = {i, t};
             conns.push_back(cc);
@@ -237,3 +239,5 @@ public:
     }
 };
 
+} // namespace mc
+} // namespace nest