diff --git a/src/js/generateGenetics.js b/src/js/generateGenetics.js
index 986ab6d2edf7d361bf293421bf842d398bea340d..705f37041705fae5a5eabe2509ce8eab97cb675b 100644
--- a/src/js/generateGenetics.js
+++ b/src/js/generateGenetics.js
@@ -1069,7 +1069,18 @@ window.generateChild = function(mother, ova, destination) {
 			child.genes = "XX";
 			child.slaveSurname = genes.surname;
 			if (!pregUpgrade) {
-				if (genes.mother === -1) {
+				if (genes.clone) {
+					if (genes.cloneID === -1) {
+						child.slaveName = `Your clone`;
+						child.slaveSurname = V.PC.slaveSurname;
+					} else {
+						child.slaveName = `${genes.clone}'s clone`;
+						let cloneSeed = getSlave(genes.cloneID);
+						if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") {
+							child.slaveSurname = cloneSeed.slaveSurname;
+						}
+					}
+				} else if (genes.mother === -1) {
 					if (genes.father <= 0) {
 						child.slaveName = `Your daughter`;
 					} else {
@@ -1108,7 +1119,18 @@ window.generateChild = function(mother, ova, destination) {
 			} else {
 				let childName = genes.name;
 				if (childName.indexOf("ovum") === 0) {
-					if (genes.mother === -1) {
+					if (genes.clone) {
+						if (genes.cloneID === -1) {
+							child.slaveName = `Your clone`;
+							child.slaveSurname = V.PC.slaveSurname;
+						} else {
+							child.slaveName = `${genes.clone}'s clone`;
+							let cloneSeed = getSlave(genes.cloneID);
+							if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") {
+								child.slaveSurname = cloneSeed.slaveSurname;
+							}
+						}
+					} else if (genes.mother === -1) {
 						if (genes.father <= 0) {
 							child.slaveName = "Your son";
 						} else {
@@ -1126,7 +1148,16 @@ window.generateChild = function(mother, ova, destination) {
 				} else {
 					child.slaveName = genes.name;
 				}
-				if (genes.mother === -1) {
+				if (genes.clone) {
+					if (genes.cloneID === -1) {
+						child.slaveSurname = V.PC.slaveSurname;
+					} else {
+						let cloneSeed = getSlave(genes.cloneID);
+						if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") {
+							child.slaveSurname = cloneSeed.slaveSurname;
+						}
+					}
+				} else if (genes.mother === -1) {
 					child.slaveSurname = V.PC.slaveSurname;
 				} else {
 					if (genes.father === -1) {
@@ -1159,7 +1190,18 @@ window.generateChild = function(mother, ova, destination) {
 			child.genes = "XY";
 			child.slaveSurname = genes.surname;
 			if (!pregUpgrade) {
-				if (genes.mother === -1) {
+				if (genes.clone) {
+					if (genes.cloneID === -1) {
+						child.slaveName = `Your clone`;
+						child.slaveSurname = V.PC.slaveSurname;
+					} else {
+						child.slaveName = `${genes.clone}'s clone`;
+						let cloneSeed = getSlave(genes.cloneID);
+						if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") {
+							child.slaveSurname = cloneSeed.slaveSurname;
+						}
+					}
+				} else if (genes.mother === -1) {
 					if (genes.father <= 0) {
 						child.slaveName = "Your son";
 					} else {
@@ -1198,7 +1240,18 @@ window.generateChild = function(mother, ova, destination) {
 			} else {
 				let childName = genes.name;
 				if (childName.indexOf("ovum") === 0) {
-					if (genes.mother === -1) {
+					if (genes.clone) {
+						if (genes.cloneID === -1) {
+							child.slaveName = `Your clone`;
+							child.slaveSurname = V.PC.slaveSurname;
+						} else {
+							child.slaveName = `${genes.clone}'s clone`;
+							let cloneSeed = getSlave(genes.cloneID);
+							if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") {
+								child.slaveSurname = cloneSeed.slaveSurname;
+							}
+						}
+					} else if (genes.mother === -1) {
 						if (genes.father <= 0) {
 							child.slaveName = "Your son";
 						} else {
@@ -1216,7 +1269,16 @@ window.generateChild = function(mother, ova, destination) {
 				} else {
 					child.slaveName = genes.name;
 				}
-				if (genes.mother === -1) {
+				if (genes.clone) {
+					if (genes.cloneID === -1) {
+						child.slaveSurname = V.PC.slaveSurname;
+					} else {
+						let cloneSeed = getSlave(genes.cloneID);
+						if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") {
+							child.slaveSurname = cloneSeed.slaveSurname;
+						}
+					}
+				} else if (genes.mother === -1) {
 					child.slaveSurname = V.PC.slaveSurname;
 				} else {
 					if (genes.father === -1) {
@@ -1338,7 +1400,18 @@ window.generateChild = function(mother, ova, destination) {
 			child = GenerateNewSlave("XX");
 			child.slaveSurname = genes.surname;
 			if (!pregUpgrade) {
-				if (genes.mother === -1) {
+				if (genes.clone) {
+					if (genes.cloneID === -1) {
+						child.slaveName = `Your clone`;
+						child.slaveSurname = V.PC.slaveSurname;
+					} else {
+						child.slaveName = `${genes.clone}'s clone`;
+						let cloneSeed = getSlave(genes.cloneID);
+						if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") {
+							child.slaveSurname = cloneSeed.slaveSurname;
+						}
+					}
+				} else if (genes.mother === -1) {
 					if (genes.father <= 0) {
 						child.slaveName = `Your daughter`;
 					} else {
@@ -1377,7 +1450,18 @@ window.generateChild = function(mother, ova, destination) {
 			} else {
 				let childName = genes.name;
 				if (childName.indexOf("ovum") === 0) {
-					if (genes.mother === -1) {
+					if (genes.clone) {
+						if (genes.cloneID === -1) {
+							child.slaveName = `Your clone`;
+							child.slaveSurname = V.PC.slaveSurname;
+						} else {
+							child.slaveName = `${genes.clone}'s clone`;
+							let cloneSeed = getSlave(genes.cloneID);
+							if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") {
+								child.slaveSurname = cloneSeed.slaveSurname;
+							}
+						}
+					} else if (genes.mother === -1) {
 						if (genes.father <= 0) {
 							child.slaveName = `Your daughter`;
 						} else {
@@ -1395,7 +1479,16 @@ window.generateChild = function(mother, ova, destination) {
 				} else {
 					child.slaveName = genes.name;
 				}
-				if (genes.mother === -1) {
+				if (genes.clone) {
+					if (genes.cloneID === -1) {
+						child.slaveSurname = V.PC.slaveSurname;
+					} else {
+						let cloneSeed = getSlave(genes.cloneID);
+						if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") {
+							child.slaveSurname = cloneSeed.slaveSurname;
+						}
+					}
+				} else if (genes.mother === -1) {
 					child.slaveSurname = V.PC.slaveSurname;
 				} else {
 					if (genes.father === -1) {
@@ -1428,7 +1521,18 @@ window.generateChild = function(mother, ova, destination) {
 			child = GenerateNewSlave("XY");
 			child.slaveSurname = genes.surname;
 			if (!pregUpgrade) {
-				if (genes.mother === -1) {
+				if (genes.clone) {
+					if (genes.cloneID === -1) {
+						child.slaveName = `Your clone`;
+						child.slaveSurname = V.PC.slaveSurname;
+					} else {
+						child.slaveName = `${genes.clone}'s clone`;
+						let cloneSeed = getSlave(genes.cloneID);
+						if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") {
+							child.slaveSurname = cloneSeed.slaveSurname;
+						}
+					}
+				} else if (genes.mother === -1) {
 					if (genes.father <= 0) {
 						child.slaveName = "Your son";
 					} else {
@@ -1467,7 +1571,18 @@ window.generateChild = function(mother, ova, destination) {
 			} else {
 				let childName = genes.name;
 				if (childName.indexOf("ovum") === 0) {
-					if (genes.mother === -1) {
+					if (genes.clone) {
+						if (genes.cloneID === -1) {
+							child.slaveName = `Your clone`;
+							child.slaveSurname = V.PC.slaveSurname;
+						} else {
+							child.slaveName = `${genes.clone}'s clone`;
+							let cloneSeed = getSlave(genes.cloneID);
+							if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") {
+								child.slaveSurname = cloneSeed.slaveSurname;
+							}
+						}
+					} else if (genes.mother === -1) {
 						if (genes.father <= 0) {
 							child.slaveName = "Your son";
 						} else {
@@ -1485,7 +1600,16 @@ window.generateChild = function(mother, ova, destination) {
 				} else {
 					child.slaveName = genes.name;
 				}
-				if (genes.mother === -1) {
+				if (genes.clone) {
+					if (genes.cloneID === -1) {
+						child.slaveSurname = V.PC.slaveSurname;
+					} else {
+						let cloneSeed = getSlave(genes.cloneID);
+						if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") {
+							child.slaveSurname = cloneSeed.slaveSurname;
+						}
+					}
+				} else if (genes.mother === -1) {
 					child.slaveSurname = V.PC.slaveSurname;
 				} else {
 					if (genes.father === -1) {
@@ -1517,12 +1641,10 @@ window.generateChild = function(mother, ova, destination) {
 		}
 
 		child.actualAge = 0;
-
 		if (genes.clone !== undefined) {
 			child.clone = genes.clone;
 			child.cloneID = genes.cloneID;
 		}
-
 		child.mother = genes.mother;
 		child.father = genes.father;
 		child.nationality = genes.nationality;
diff --git a/src/utility/descriptionWidgetsPiercings.tw b/src/utility/descriptionWidgetsPiercings.tw
index fd1db41e6079e9669f5bb5a662a8f28eb75f387c..91e83e21e8682b7fbfb53cfe8e40ff4e42a04d49 100644
--- a/src/utility/descriptionWidgetsPiercings.tw
+++ b/src/utility/descriptionWidgetsPiercings.tw
@@ -139,6 +139,8 @@
 			$He can barely enunciate
 			<<if $activeSlave.lipsPiercing == 2>>
 				past $his piercings;
+			<<else>>
+				with $his fat lips;
 			<</if>>
 			<<run Enunciate($activeSlave)>>
 			<<if $writtenTitle === $titleEnunciate>>