diff -r b81376013df9 MoinMoin/action/AttachFile.py
--- a/MoinMoin/action/AttachFile.py	Sat Jan 26 19:18:41 2008 +0100
+++ b/MoinMoin/action/AttachFile.py	Mon Jan 28 10:32:52 2008 +0100
@@ -361,11 +361,11 @@ def _build_filelist(request, pagename, s
                 viewlink = '<a href="%(baseurl)s/%(urlpagename)s?action=%(action)s&amp;drawing=%(base)s">%(label_edit)s</a>' % parmdict
             else:
                 viewlink = '<a href="%(baseurl)s/%(urlpagename)s?action=%(action)s&amp;do=view&amp;target=%(urlfile)s">%(label_view)s</a>' % parmdict
-
-            if (packages.ZipPackage(request, os.path.join(attach_dir, file).encode(config.charset)).isPackage() and
-                 request.user.isSuperUser() and request.user.may.write(pagename)):
+                
+            is_package = packages.ZipPackage(request, os.path.join(attach_dir, file).encode(config.charset)).isPackage() 
+            if is_package and request.user.isSuperUser() and request.user.may.write(pagename):
                 viewlink += ' | <a href="%(baseurl)s/%(urlpagename)s?action=%(action)s&amp;do=install&amp;target=%(urlfile)s">%(label_install)s</a>' % parmdict
-            elif (zipfile.is_zipfile(os.path.join(attach_dir, file).encode(config.charset)) and
+            elif (zipfile.is_zipfile(os.path.join(attach_dir, file).encode(config.charset)) and not is_package and
                 mt.minor == 'zip' and request.user.may.read(pagename) and request.user.may.delete(pagename)
                 and request.user.may.write(pagename)):
                 viewlink += ' | <a href="%(baseurl)s/%(urlpagename)s?action=%(action)s&amp;do=unzip&amp;target=%(urlfile)s">%(label_unzip)s</a>' % parmdict
