--- loncom/xml/lonxml.pm	2001/08/22 19:21:36	1.123
+++ loncom/xml/lonxml.pm	2001/08/24 15:31:55	1.127
@@ -13,7 +13,7 @@
 # 6/12,6/13 H. K. Ng
 # 6/16 Gerd Kortemeyer
 # 7/27 H. K. Ng
-# 8/7,8/9,8/10,8/11,8/15,8/16,8/17,8/18,8/20 Gerd Kortemeyer
+# 8/7,8/9,8/10,8/11,8/15,8/16,8/17,8/18,8/20,8/23,8/24 Gerd Kortemeyer
 
 package Apache::lonxml; 
 use vars 
@@ -323,7 +323,7 @@ ENDPARM
 	  menu=window.open("","LONCAPAmenu");
           menu.currentStale=1;
           menu.switchbutton
-            (3,1,'reload.gif','return','location','go(currentURL)');
+             (3,1,'reload.gif','return','location','go(currentURL)');
           menu.clearbut(7,1);
           menu.clearbut(7,2);
           menu.clearbut(7,3);
@@ -408,7 +408,9 @@ sub xmlparse {
 
  my $finaloutput = &inner_xmlparse($target,\@stack,\@parstack,\@pars,
 				   $safeeval,\%style_for_target);
-
+ if ($ENV{'request.uri'}) {
+    &writeallows($ENV{'request.uri'});
+ }
  return $finaloutput;
 }
 
@@ -656,6 +658,7 @@ sub setup_globals {
   my ($target)=@_;
   $Apache::lonxml::registered = 0;
   @Apache::lonxml::pwd=();
+  @Apache::lonxml::extlinks=();
   if ($target eq 'meta') {
     $Apache::lonxml::redirection = 0;
     $Apache::lonxml::metamode = 1;
@@ -875,6 +878,7 @@ sub parstring {
 }
 
 sub writeallows {
+    unless ($#extlinks>=0) { return; }
     my $thisurl='/res/'.&Apache::lonnet::declutter(shift);
     if ($ENV{'httpref.'.$thisurl}) {
 	$thisurl=$ENV{'httpref.'.$thisurl};
@@ -884,7 +888,9 @@ sub writeallows {
     my %httpref=();
     map {
        $httpref{'httpref.'.
- 	        &Apache::lonnet::hreflocation($thisdir,$_)}=$thisurl;              } @extlinks;
+ 	        &Apache::lonnet::hreflocation($thisdir,$_)}=$thisurl;
+    } @extlinks;
+    @extlinks=();
     &Apache::lonnet::appenv(%httpref);
 }
 
@@ -1033,10 +1039,11 @@ ENDNOTFOUND
   unless ($ENV{'request.state'} eq 'published') {
       $result=&inserteditinfo($result,$filecontents);
   }
+  
+  writeallows($request->uri);
 
   $request->print($result);
 
-  writeallows($request->uri);
   return OK;
 }