Index: branches/stable/dns.cgi
===================================================================
--- branches/stable/dns.cgi	(revision 690)
+++ branches/stable/dns.cgi	(revision 725)
@@ -25,5 +25,5 @@
 use CGI::Simple;
 use HTML::Template;
-use CGI::Session;
+use CGI::Session '-ip_match';
 use Net::DNS;
 use DBI;
@@ -158,4 +158,5 @@
 }
 if (defined($webvar{filter})) {
+  $session->param($webvar{page}.'filter', '') if !$session->param($webvar{page}.'filter');
   if ($webvar{filter} ne $session->param($webvar{page}.'filter')) {
     $uri_self =~ s/\&amp;offset=[^&]//;
@@ -528,6 +529,5 @@
 
   fill_grouplist("grouplist");
-  my $loclist = $dnsdb->getLocDropdown($curgroup);
-  $page->param(loclist => $loclist);
+  fill_loclist($curgroup, $webvar{defloc} ? $webvar{defloc} : '');
 
   # prepopulate revpatt with the matching default record
@@ -1525,5 +1525,6 @@
 	unless ($permissions{admin} || $permissions{location_create});
 
-    my ($code,$msg) = $dnsdb->addLoc($curgroup, $webvar{locname}, $webvar{comments}, $webvar{iplist});
+    my ($code,$msg) = $dnsdb->addLoc(group => $curgroup, desc => $webvar{locname},
+	comments => $webvar{comments}, iplist => $webvar{iplist});
 
     if ($code eq 'OK' || $code eq 'WARN') {
@@ -1621,8 +1622,16 @@
 } elsif ($webvar{page} eq 'dnsq') {
 
-  $page->param(qfor => $webvar{qfor}) if $webvar{qfor};
+  if ($webvar{qfor}) {
+    $webvar{qfor} =~ s/^\s*//;
+    $webvar{qfor} =~ s/\s*$//;
+    $page->param(qfor => $webvar{qfor});
+  }
+  if ($webvar{resolver}) {
+    $webvar{resolver} =~ s/^\s*//;
+    $webvar{resolver} =~ s/\s*$//;
+    $page->param(resolver => $webvar{resolver});
+  }
   $page->param(typelist => $dnsdb->getTypelist('l', ($webvar{type} ? $webvar{type} : undef)));
   $page->param(nrecurse => $webvar{nrecurse}) if $webvar{nrecurse};
-  $page->param(resolver => $webvar{resolver}) if $webvar{resolver};
 
   if ($webvar{qfor}) {
