--- loncom/xml/lonxml.pm	2014/06/21 23:36:05	1.548
+++ loncom/xml/lonxml.pm	2014/12/15 17:39:24	1.551
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # XML Parser Module 
 #
-# $Id: lonxml.pm,v 1.548 2014/06/21 23:36:05 raeburn Exp $
+# $Id: lonxml.pm,v 1.551 2014/12/15 17:39:24 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -229,11 +229,10 @@ sub xmlend {
 }
 
 sub printalltags {
-  my $temp;
-  foreach $temp (sort keys %Apache::lonxml::alltags) {
-    &Apache::lonxml::debug("$temp -- ".
-		  join(',',@{ $Apache::lonxml::alltags{$temp} }));
-  }
+    foreach my $temp (sort(keys(%Apache::lonxml::alltags))) {
+        &Apache::lonxml::debug("$temp -- ".
+                               join(',',@{ $Apache::lonxml::alltags{$temp} }));
+    }
 }
 
 sub xmlparse {
@@ -1327,7 +1326,7 @@ sub extlink {
     if (!$exact) {
 	$res=&Apache::lonnet::hreflocation($Apache::lonxml::pwd[-1],$res);
     }
-    push(@Apache::lonxml::extlinks,$res)	 
+    push(@Apache::lonxml::extlinks,$res);
 }
 
 sub writeallows {
@@ -1751,6 +1750,7 @@ sub handler {
             }
 	}
     }
+    my $inhibit_menu;
     my %mystyle;
     my $result = '';
     my $filecontents=&Apache::lonnet::getfile($file);
@@ -1808,8 +1808,15 @@ ENDNOTFOUND
 	    &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
 						    ['rawmode']);
 	    if ($env{'form.rawmode'}) { $result = $filecontents; }
+            if (($env{'request.state'} eq 'construct') &&
+                (($filetype eq 'css') || ($filetype eq 'js')) && ($ENV{'HTTP_REFERER'})) {
+                if ($ENV{'HTTP_REFERER'} =~ m{^https?\://[^\/]+/priv/$LONCAPA::match_domain/$LONCAPA::match_username/[^\?]+\.(x?html?|swf)(|\?)[^\?]*$}) {
+                    $inhibit_menu = 1;
+                }
+            }
             if (($filetype ne 'html') && 
-                (!$env{'form.return_only_error_and_warning_counts'})) {
+                (!$env{'form.return_only_error_and_warning_counts'}) &&
+                (!$inhibit_menu)) {
                 my $nochgview = 1;
                 my $controls = '';
                     if ($env{'request.state'} eq 'construct') {
@@ -1847,7 +1854,7 @@ ENDNOTFOUND
 #
 # Edit action? Insert editing commands
 #
-    unless ($env{'request.state'} eq 'published') {
+    unless (($env{'request.state'} eq 'published') || ($inhibit_menu)) {
 	if ($env{'form.editmode'} && (!($env{'form.viewmode'})) && (!($env{'form.discardview'})))
 	{
             my ($displayfile,$url,$symb,$itemtitle,$action);
@@ -2046,7 +2053,7 @@ sub error {
 	    my $declutter=&Apache::lonnet::declutter($env{'request.filename'});
             my $baseurl = &Apache::lonnet::clutter($declutter);
 	    my @userlist;
-	    foreach (keys %users) {
+	    foreach (keys(%users)) {
 		my ($user,$domain) = split(/:/, $_);
 		push(@userlist,"$user:$domain");
 		my $key=$declutter.'_'.$user.'_'.$domain;