Index: trunk/dns.cgi
===================================================================
--- trunk/dns.cgi	(revision 381)
+++ trunk/dns.cgi	(revision 383)
@@ -346,4 +346,5 @@
   $webvar{group} = $curgroup if !$webvar{group};
   fill_grouplist("grouplist", $webvar{group});
+  fill_loclist();
 
   if ($session->param('add_failed')) {
@@ -630,4 +631,9 @@
 
     fill_recdata();
+
+    if ($webvar{defrec} eq 'n') {
+      my $defloc = getZoneLocation($dbh, $webvar{revrec}, $webvar{parentid});
+      fill_loclist($curgroup, $defloc);
+    }
 
   } elsif ($webvar{recact} eq 'add') {
@@ -663,4 +669,7 @@
       $page->param(id		=> $webvar{id});
       fill_recdata();	# populate the form... er, mostly.
+      if ($webvar{defrec} eq 'n') {
+	fill_loclist($curgroup, $webvar{location});
+      }
     }
 
@@ -682,4 +691,8 @@
     $page->param(ttl		=> $recdata->{ttl});
     $page->param(typelist	=> getTypelist($dbh, $webvar{revrec}, $recdata->{type}));
+
+    if ($webvar{defrec} eq 'n') {
+      fill_loclist($curgroup, $recdata->{location});
+    }
 
   } elsif ($webvar{recact} eq 'update') {
@@ -1638,5 +1651,5 @@
   $page->param(mayrdns => 1);
 
-  $page->param(mayloc => ($permissions{admin} || $permissions{loc_view}));
+  $page->param(mayloc => ($permissions{admin} || $permissions{location_view}));
 
   $page->param(maydefrec => $permissions{admin});
@@ -1848,4 +1861,5 @@
     $rec->{record_edit} = ($permissions{admin} || $permissions{record_edit});
     $rec->{record_delete} = ($permissions{admin} || $permissions{record_delete});
+    $rec->{locname} = '' unless ($permissions{admin} || $permissions{location_view});
   }
   $page->param(reclist => $foo2);
@@ -2101,4 +2115,17 @@
 
 
+sub fill_loclist {
+  my $cur = shift || $curgroup;
+  my $defloc = shift || '';
+
+  return unless ($permissions{admin} || $permissions{location_view});
+
+  my $loclist = getLocDropdown($dbh, $cur, $defloc);
+
+  $page->param(location_view => ($permissions{admin} || $permissions{location_view}));
+  $page->param(loclist => $loclist);
+} # end fill_loclist()
+
+
 sub list_users {
 
