diff --git a/inc/class.schedule.php b/inc/class.schedule.php
--- a/inc/class.schedule.php
+++ b/inc/class.schedule.php
@@ -52,6 +52,7 @@ class Schedule
   private $possiblePermutations;	// Integer number of possible permutations
   private $scheduleName;			// String name of schedule
   private $storage;				// Integer array of valid schedules
+  /* The 
 of the page used when rendering this schedule */
   private $title;
 
   /**
@@ -61,16 +62,31 @@ class Schedule
    */
   private $id;
 
+  /*
+   * The identifier of the schedule from which this schedule was
+   * derived or NULL.
+   */
+  private $parent_id;
+
   /**
    * \brief
    *   Create a schedule with the given name.
+   *
+   * \param $name
+   *   A string, the friendly name the user gave this schedule.
+   * \param $parent
+   *   An integer, the id of the schedule from which this schedule is
+   *   derived. A schedule is considered to be derived of another of
+   *   the user created this schedule by clicking ``Edit'' for the
+   *   previous schedule. Or NULL if this schedule stands on its own.
    */
-  function __construct($name)
+  function __construct($name, $parent = NULL)
   {
     $this->courses = array();
     $this->scheduleName = $name;
     $this->storage = array();
     $this->title = "SlatePermutate - Scheduler";
+    $this->parent_id = $parent;
 
     /* mark this as an upgraded Schedule class. See __wakeup() */
     $this->nclasses = -1;
@@ -206,10 +222,16 @@ class Schedule
       } while($counter < $this->possiblePermutations);
   }
     
+  /**
+   * \brief
+   *   Prints out the possible permutations in tables.
+   *
+   * \param $schedule_store
+   *   The schedule_store handle with which this schedule was loaded,
+   *   used to query the parent schedule.
+   */
   //--------------------------------------------------
-  // Prints out the possible permutations in tables.
-  //--------------------------------------------------
-  function writeoutTables()
+  function writeoutTables(array $schedule_store = NULL)
   {
     $filled = false;
     $time = array(700,730,800,830,900,930,1000,1030,1100,1130,1200,1230,1300,1330,1400,1430,1500,1530,1600,1630,1700,1730,1800,1830,1900,1930,2000,2030,2100,2130, 2200);
@@ -264,7 +286,7 @@ class Schedule
 
     }
     else {
-      echo '';
+	        });'
+	. '  });' . PHP_EOL
+	. '        ' . PHP_EOL;
 
-      echo '
 Share on Facebook
You can also share your schedule with the URL below:
' . htmlentities($outputPage->gen_share_url($this->id_get())) . '
 ' . "\n";
-      echo 'Edit Print Share  Home
'. "\n";
-      echo 'Having problems? Let us know.
' . "\n";
-      echo 'Keyboard Shortcut: Left and right arrow keys switch between schedules
' . "\n";
+      echo '        ' . PHP_EOL
+	. '          
 Share on Facebook
You can also share your schedule with the URL below:
' . htmlentities($outputPage->gen_share_url($this->id_get())) . '
' . PHP_EOL
+	. '        
 ' . PHP_EOL
+	. '        ' . PHP_EOL
+	. '          Edit' . PHP_EOL
+	. '          Print' . PHP_EOL
+	. '          Share' . PHP_EOL;
+
 
+      if ($schedule_store !== NULL
+	  && $this->parent_get() !== NULL
+	  && ($parent_schedule = schedule_store_retrieve($schedule_store, $this->parent_get())) !== NULL)
+	echo '          Parent' . PHP_EOL;
+
+      echo '          Home' . PHP_EOL
+	. '        
'. PHP_EOL
+	. '        Having problems? Let us know.
' . PHP_EOL
+	. '        Keyboard Shortcut: Left and right arrow keys switch between schedules
' . PHP_EOL;
     }		
 
     echo "\n";
@@ -598,6 +633,16 @@ class Schedule
 
   /**
    * \brief
+   *   Get the ID of the schedule from which this schedule was
+   *   derived.
+   */
+  public function parent_get()
+  {
+    return $this->parent_id;
+  }
+
+  /**
+   * \brief
    *   A magic function which tries to upgrade old serialized sections
    *   to the new format.
    */
@@ -613,5 +658,8 @@ class Schedule
 	$this->courses[] = $classes->to_course();
       }
     $this->nclasses = -1;
+
+    if (empty($this->parent_id))
+      $this->parent_id = NULL;
   }
 }