diff --git a/gpt.cc b/gpt.cc
index 532208f..4292035 100644
--- a/gpt.cc
+++ b/gpt.cc
@@ -30,6 +30,11 @@
 
 using namespace std;
 
+#ifdef __FreeBSD__ 
+#define log2(x) (log(x) / M_LN2)
+#endif // __FreeBSD__
+
+
 /****************************************
  *                                      *
  * GPTData class and related structures *
@@ -1818,6 +1823,18 @@
    return retval;
 } // GPTData::SetPartitionGUID()
 
+// Set new random GUIDs for the disk and all partitions. Intended to be used
+// after disk cloning or similar operations that don't randomize the GUIDs.
+void GPTData::RandomizeGUIDs(void) {
+   uint32_t i;
+
+   mainHeader.diskGUID.Randomize();
+   secondHeader.diskGUID = mainHeader.diskGUID;
+   for (i = 0; i < numParts; i++)
+      if (partitions[i].IsUsed())
+         partitions[i].RandomizeUniqueGUID();
+} // GPTData::RandomizeGUIDs()
+
 // Change partition type code non-interactively. Returns 1 if
 // successful, 0 if not....
 int GPTData::ChangePartType(uint32_t partNum, uint16_t hexCode) {
@@ -1829,6 +1846,16 @@
    return retval;
 } // GPTData::ChangePartType()
 
+// Recompute the CHS values of all the MBR partitions. Used to reset
+// CHS values that some BIOSes require, despite the fact that the
+// resulting CHS values violate the GPT standard.
+void GPTData::RecomputeCHS(void) {
+   int i;
+
+   for (i = 0; i < 4; i++)
+      protectiveMBR.RecomputeCHS(i);
+} // GPTData::RecomputeCHS()
+
 // Adjust sector number so that it falls on a sector boundary that's a
 // multiple of sectorAlignment. This is done to improve the performance
 // of Western Digital Advanced Format disks and disks with similar
@@ -2140,10 +2167,7 @@
 // Set partition alignment value; partitions will begin on multiples of
 // the specified value
 void GPTData::SetAlignment(uint32_t n) {
-   uint32_t l2;
-
    sectorAlignment = n;
-   l2 = (uint32_t) log2(n);
 } // GPTData::SetAlignment()
 
 // Compute sector alignment based on the current partitions (if any). Each
