diff --git a/tbsetup/Template.pm.in b/tbsetup/Template.pm.in
index 6bad738e0754a8ab1aaf2ed299f7e22639c7f887..65997c4a9f98273369848e360e3130be699a496a 100644
--- a/tbsetup/Template.pm.in
+++ b/tbsetup/Template.pm.in
@@ -173,6 +173,8 @@ sub logfile($) {
     return ((! ref($_[0])) ? -1 : $_[0]->{'TEMPLATE'}->{'logfile'}); }
 sub logfile_open($) {
     return ((! ref($_[0])) ? -1 : $_[0]->{'TEMPLATE'}->{'logfile_open'}); }
+sub active($) {
+    return ((! ref($_[0])) ? -1 : $_[0]->{'TEMPLATE'}->{'active'}); }
 
 #
 # Lookup a template given an experiment index.
@@ -1776,6 +1778,16 @@ sub InActivate($)
 
     return 0;
 }
+sub IsActive($)
+{
+    my ($self) = @_;
+
+    # Must be a real reference. 
+    return -1
+	if (! ref($self));
+
+    return $self->active();
+}
 
 # Improve this at some point.
 sub Recurse($$)
diff --git a/tbsetup/template_create.in b/tbsetup/template_create.in
index b46adddd66922748d4736b101b037bf25f9bb6dd..a5278dd496767bd3eb1d865d4bd66fd8dffdc9fd 100644
--- a/tbsetup/template_create.in
+++ b/tbsetup/template_create.in
@@ -786,6 +786,15 @@ system("$makegraph $guid");
 fatal(-1, "Error generating template graph.")
     if ($?);
 
+#
+# Make the new template active (and the parent template inactive) if the
+# parent was already active.
+#
+if ($parent_template->IsActive()) {
+    $parent_template->InActivate();
+    $template->Activate();
+}
+
 #
 # Update parent to point to most recent child.
 #