diff --git a/include/common/standard.h b/include/common/standard.h
index d8bccba..6e1e840 100644
--- a/include/common/standard.h
+++ b/include/common/standard.h
@@ -1551,6 +1551,7 @@
 int parse_dotted_uints(const char *s, unsigned int **nums, size_t *sz);
 
 /* PRNG */
+void ha_generate_uuid(struct buffer *output);
 void ha_random_seed(const unsigned char *seed, size_t len);
 void ha_random_jump96(uint32_t dist);
 uint64_t ha_random64();
diff --git a/src/flt_spoe.c b/src/flt_spoe.c
index bcdec08..df080d8 100644
--- a/src/flt_spoe.c
+++ b/src/flt_spoe.c
@@ -257,33 +257,8 @@
 static char *
 generate_pseudo_uuid()
 {
-	char *uuid;
-	uint32_t rnd[4] = { 0, 0, 0, 0 };
-	uint64_t last = 0;
-	int byte = 0;
-	uint8_t bits = 0;
-	unsigned int rand_max_bits = my_flsl(RAND_MAX);
-
-	if ((uuid = calloc(1, 37)) == NULL)
-		return NULL;
-
-	while (byte < 4) {
-		while (bits < 32) {
-			last |= (uint64_t)ha_random() << bits;
-			bits += rand_max_bits;
-		}
-		rnd[byte++] = last;
-		last >>= 32u;
-		bits  -= 32;
-	}
-	snprintf(uuid, 37, "%8.8x-%4.4x-%4.4x-%4.4x-%12.12llx",
-			     rnd[0],
-			     rnd[1] & 0xFFFF,
-			     ((rnd[1] >> 16u) & 0xFFF) | 0x4000,  // highest 4 bits indicate the uuid version
-			     (rnd[2] & 0x3FFF) | 0x8000,  // the highest 2 bits indicate the UUID variant (10),
-			     (long long)((rnd[2] >> 14u) | ((uint64_t) rnd[3] << 18u)) & 0xFFFFFFFFFFFFull
-			);
-	return uuid;
+	ha_generate_uuid(&trash);
+	return trash.area;
 }
 
 
diff --git a/src/sample.c b/src/sample.c
index 088da41..d602887 100644
--- a/src/sample.c
+++ b/src/sample.c
@@ -3328,30 +3328,7 @@
 static int smp_fetch_uuid(const struct arg *args, struct sample *smp, const char *kw, void *private)
 {
 	if (args[0].data.sint == 4 || !args[0].type) {
-		uint32_t rnd[4] = { 0, 0, 0, 0 };
-		uint64_t last = 0;
-		int byte = 0;
-		uint8_t bits = 0;
-		unsigned int rand_max_bits = my_flsl(RAND_MAX);
-
-		while (byte < 4) {
-			while (bits < 32) {
-				last |= (uint64_t)ha_random() << bits;
-				bits += rand_max_bits;
-			}
-			rnd[byte++] = last;
-			last >>= 32u;
-			bits  -= 32;
-		}
-
-		chunk_printf(&trash, "%8.8x-%4.4x-%4.4x-%4.4x-%12.12llx",
-			     rnd[0],
-			     rnd[1] & 0xFFFF,
-			     ((rnd[1] >> 16u) & 0xFFF) | 0x4000,  // highest 4 bits indicate the uuid version
-			     (rnd[2] & 0x3FFF) | 0x8000,  // the highest 2 bits indicate the UUID variant (10),
-			     (long long)((rnd[2] >> 14u) | ((uint64_t) rnd[3] << 18u)) & 0xFFFFFFFFFFFFull
-			);
-
+		ha_generate_uuid(&trash);
 		smp->data.type = SMP_T_STR;
 		smp->flags = SMP_F_VOL_TEST | SMP_F_MAY_CHANGE;
 		smp->data.u.str = trash;
diff --git a/src/standard.c b/src/standard.c
index 5ccf447..e0ea832 100644
--- a/src/standard.c
+++ b/src/standard.c
@@ -4640,6 +4640,31 @@
 	}
 }
 
+/* Generates an RFC4122 UUID into chunk <output> which must be at least 37
+ * bytes large.
+ */
+void ha_generate_uuid(struct buffer *output)
+{
+	uint32_t rnd[4];
+	uint64_t last;
+
+	last = ha_random64();
+	rnd[0] = last;
+	rnd[1] = last >> 32;
+
+	last = ha_random64();
+	rnd[2] = last;
+	rnd[3] = last >> 32;
+
+	chunk_printf(output, "%8.8x-%4.4x-%4.4x-%4.4x-%12.12llx",
+	             rnd[0],
+	             rnd[1] & 0xFFFF,
+	             ((rnd[1] >> 16u) & 0xFFF) | 0x4000,  // highest 4 bits indicate the uuid version
+	             (rnd[2] & 0x3FFF) | 0x8000,  // the highest 2 bits indicate the UUID variant (10),
+	             (long long)((rnd[2] >> 14u) | ((uint64_t) rnd[3] << 18u)) & 0xFFFFFFFFFFFFull);
+}
+
+
 /*
  * Local variables:
  *  c-indent-level: 8
