Index: cpp/frams/genetics/f1/f1_conv.cpp
===================================================================
--- cpp/frams/genetics/f1/f1_conv.cpp	(revision 1334)
+++ cpp/frams/genetics/f1/f1_conv.cpp	(revision 1335)
@@ -1,4 +1,4 @@
 // This file is a part of Framsticks SDK.  http://www.framsticks.com/
-// Copyright (C) 1999-2023  Maciej Komosinski and Szymon Ulatowski.
+// Copyright (C) 1999-2025  Maciej Komosinski and Szymon Ulatowski.
 // See LICENSE.txt for details.
 
@@ -136,5 +136,5 @@
 	Builder builder(settings, g, map ? 1 : 0);
 	builder.model.open(using_checkpoints);
-	builder.grow(-1, g, Pt3D_0, GeneProps::standard_values, -1); // uses Model::addFromString() to create model elements
+	builder.grow(-1, g, Pt3D_0, GeneProps::get_standard_values(), -1); // uses Model::addFromString() to create model elements
 	if (builder.invalid) return SString();
 	builder.addPendingInputs();
Index: cpp/frams/genetics/f4/f4_general.cpp
===================================================================
--- cpp/frams/genetics/f4/f4_general.cpp	(revision 1334)
+++ cpp/frams/genetics/f4/f4_general.cpp	(revision 1335)
@@ -1,4 +1,4 @@
 // This file is a part of Framsticks SDK.  http://www.framsticks.com/
-// Copyright (C) 1999-2024  Maciej Komosinski and Szymon Ulatowski.
+// Copyright (C) 1999-2025  Maciej Komosinski and Szymon Ulatowski.
 // See LICENSE.txt for details.
 
@@ -642,5 +642,5 @@
 
 	// create ancestor cell
-	C[0] = new f4_Cell(this, 0, genome, genome, NULL, 0, GeneProps::standard_values);
+	C[0] = new f4_Cell(this, 0, genome, genome, NULL, 0, GeneProps::get_standard_values());
 	cell_count = 1;
 	development_stagnation = false;
@@ -882,5 +882,5 @@
 {
 	if (tmpcel) delete tmpcel;
-	tmpcel = new f4_Cell(-1, NULL, 0, GeneProps::standard_values);
+	tmpcel = new f4_Cell(-1, NULL, 0, GeneProps::get_standard_values());
 	out = "";
 	toF1GenoRec(0, out);
Index: cpp/frams/genetics/geneprops.cpp
===================================================================
--- cpp/frams/genetics/geneprops.cpp	(revision 1334)
+++ cpp/frams/genetics/geneprops.cpp	(revision 1335)
@@ -1,4 +1,4 @@
 // This file is a part of Framsticks SDK.  http://www.framsticks.com/
-// Copyright (C) 1999-2023  Maciej Komosinski and Szymon Ulatowski.
+// Copyright (C) 1999-2025  Maciej Komosinski and Szymon Ulatowski.
 // See LICENSE.txt for details.
 
@@ -6,5 +6,10 @@
 #include <algorithm>
 
-GeneProps GeneProps::standard_values;
+
+const GeneProps& GeneProps::get_standard_values() //this getter function ensures controlled initialization of the static standard_values object
+{
+	static GeneProps standard_values;
+	return standard_values;
+}
 
 GeneProps::GeneProps()
@@ -94,4 +99,5 @@
 void GeneProps::propagateAlong(bool use_f1_muscle_reset_range, GenePropsOps* ops)
 {
+	const GeneProps& standard_values = get_standard_values();
 	length = 0.5 * length + 0.5 * standard_values.length;
 	weight += (standard_values.weight - weight) * 0.5;
@@ -202,25 +208,29 @@
 GenePropsOps_Legacy::GenePropsOps_Legacy()
 {
+	const GeneProps& standard_values = GeneProps::get_standard_values();
+
 	use_normalizebiol4 = true;
 
-	length = new GenePropsOp_Legacy(0.33, 2.0, GeneProps::standard_values.length, 0.3);
-	weight = new GenePropsOp_Legacy(0.5, 2.0, GeneProps::standard_values.weight, 0.3);
-	friction = new GenePropsOp_Legacy(0, 4.0, GeneProps::standard_values.friction, 0.2);
-	curvedness = new GenePropsOp_Legacy(-2, 2, GeneProps::standard_values.curvedness, 0.25);
-	twist = new GenePropsOp_Legacy(-M_PI_2, M_PI_2, GeneProps::standard_values.twist, 0.3);
-	energy = new GenePropsOp_Legacy(0, 10, GeneProps::standard_values.energy, 0.1);
-
-	assimilation = new GenePropsOp_Legacy(0, 1, GeneProps::standard_values.assimilation, 0.8, 0.4);
-	ingestion = new GenePropsOp_Legacy(0, 1, GeneProps::standard_values.ingestion, 0.8, 0.4);
-	stamina = new GenePropsOp_Legacy(0, 1, GeneProps::standard_values.stamina, 0.8, 0.4);
-	muscle_power = new GenePropsOp_Legacy(0, 1, GeneProps::standard_values.muscle_power, 0.8, 0.4);
-
-	cred = new GenePropsOp_Legacy(0, 1, GeneProps::standard_values.cred, 0.25);
-	cgreen = new GenePropsOp_Legacy(0, 1, GeneProps::standard_values.cgreen, 0.25);
-	cblue = new GenePropsOp_Legacy(0, 1, GeneProps::standard_values.cblue, 0.25);
+	length = new GenePropsOp_Legacy(0.33, 2.0, standard_values.length, 0.3);
+	weight = new GenePropsOp_Legacy(0.5, 2.0, standard_values.weight, 0.3);
+	friction = new GenePropsOp_Legacy(0, 4.0, standard_values.friction, 0.2);
+	curvedness = new GenePropsOp_Legacy(-2, 2, standard_values.curvedness, 0.25);
+	twist = new GenePropsOp_Legacy(-M_PI_2, M_PI_2, standard_values.twist, 0.3);
+	energy = new GenePropsOp_Legacy(0, 10, standard_values.energy, 0.1);
+
+	assimilation = new GenePropsOp_Legacy(0, 1, standard_values.assimilation, 0.8, 0.4);
+	ingestion = new GenePropsOp_Legacy(0, 1, standard_values.ingestion, 0.8, 0.4);
+	stamina = new GenePropsOp_Legacy(0, 1, standard_values.stamina, 0.8, 0.4);
+	muscle_power = new GenePropsOp_Legacy(0, 1, standard_values.muscle_power, 0.8, 0.4);
+
+	cred = new GenePropsOp_Legacy(0, 1, standard_values.cred, 0.25);
+	cgreen = new GenePropsOp_Legacy(0, 1, standard_values.cgreen, 0.25);
+	cblue = new GenePropsOp_Legacy(0, 1, standard_values.cblue, 0.25);
 }
 
 GenePropsOps_AllChange05::GenePropsOps_AllChange05()
 {
+	const GeneProps& standard_values = GeneProps::get_standard_values();
+
 	use_normalizebiol4 = false;
 
@@ -235,24 +245,25 @@
 
 	delete curvedness;
-	curvedness = new GenePropsOp_Legacy(-M_PI_2, M_PI_2, GeneProps::standard_values.curvedness, CHANGE);
+	curvedness = new GenePropsOp_Legacy(-M_PI_2, M_PI_2, standard_values.curvedness, CHANGE);
 }
 
 GenePropsOps_Exponential::GenePropsOps_Exponential()
 {
-	length = new GenePropsOp_Exponential(0.33, 2.0, GeneProps::standard_values.length);
-	weight = new GenePropsOp_Exponential(0.5, 2.0, GeneProps::standard_values.weight);
-	friction = new GenePropsOp_Exponential(0, 4.0, GeneProps::standard_values.friction);
-	curvedness = new GenePropsOp_Exponential(-2, 2, GeneProps::standard_values.curvedness);
-	twist = new GenePropsOp_Exponential(-M_PI_2, M_PI_2, GeneProps::standard_values.twist);
-	energy = new GenePropsOp_Exponential(0, 10, GeneProps::standard_values.energy);
-
-	assimilation = new GenePropsOp_Exponential(0, 1, GeneProps::standard_values.assimilation);
-	ingestion = new GenePropsOp_Exponential(0, 1, GeneProps::standard_values.ingestion);
-	stamina = new GenePropsOp_Exponential(0, 1, GeneProps::standard_values.stamina);
-	muscle_power = new GenePropsOp_Exponential(0, 1, GeneProps::standard_values.muscle_power);
-
-	cred = new GenePropsOp_Exponential(0, 1, GeneProps::standard_values.cred);
-	cgreen = new GenePropsOp_Exponential(0, 1, GeneProps::standard_values.cgreen);
-	cblue = new GenePropsOp_Exponential(0, 1, GeneProps::standard_values.cblue);
+	const GeneProps& standard_values = GeneProps::get_standard_values();
+	length = new GenePropsOp_Exponential(0.33, 2.0, standard_values.length);
+	weight = new GenePropsOp_Exponential(0.5, 2.0, standard_values.weight);
+	friction = new GenePropsOp_Exponential(0, 4.0, standard_values.friction);
+	curvedness = new GenePropsOp_Exponential(-2, 2, standard_values.curvedness);
+	twist = new GenePropsOp_Exponential(-M_PI_2, M_PI_2, standard_values.twist);
+	energy = new GenePropsOp_Exponential(0, 10, standard_values.energy);
+
+	assimilation = new GenePropsOp_Exponential(0, 1, standard_values.assimilation);
+	ingestion = new GenePropsOp_Exponential(0, 1, standard_values.ingestion);
+	stamina = new GenePropsOp_Exponential(0, 1, standard_values.stamina);
+	muscle_power = new GenePropsOp_Exponential(0, 1, standard_values.muscle_power);
+
+	cred = new GenePropsOp_Exponential(0, 1, standard_values.cred);
+	cgreen = new GenePropsOp_Exponential(0, 1, standard_values.cgreen);
+	cblue = new GenePropsOp_Exponential(0, 1, standard_values.cblue);
 }
 
Index: cpp/frams/genetics/geneprops.h
===================================================================
--- cpp/frams/genetics/geneprops.h	(revision 1334)
+++ cpp/frams/genetics/geneprops.h	(revision 1335)
@@ -1,4 +1,4 @@
 // This file is a part of Framsticks SDK.  http://www.framsticks.com/
-// Copyright (C) 1999-2024  Maciej Komosinski and Szymon Ulatowski.
+// Copyright (C) 1999-2025  Maciej Komosinski and Szymon Ulatowski.
 // See LICENSE.txt for details.
 
@@ -143,5 +143,5 @@
 	double cblue;             ///<incremented by G, decremented by g. Part's blue color proportion
 
-	static GeneProps standard_values;
+	static const GeneProps& get_standard_values();
 	
 	static GenePropsOps* getDefaultOps();
