Index: web/lang/pkgfuncs_po.inc
===================================================================
--- web/lang/pkgfuncs_po.inc	(revision 130)
+++ web/lang/pkgfuncs_po.inc	(working copy)
@@ -202,4 +202,9 @@
 # $_t["fr"]["Yes"] = "--> Traduction française ici. <--";
 # $_t["de"]["Yes"] = "--> Deutsche Übersetzung hier. <--";
 
+$_t["en"]["Orphans"] = "Orphans";
+# $_t["es"]["Orphans"] = "--> Traducción española aquí. <--";
+# $_t["fr"]["Orphans"] = "--> Traduction française ici. <--";
+# $_t["de"]["Orphans"] = "--> Deutsche Übersetzung hier. <--";
+
 ?>
Index: web/lib/pkgfuncs.inc
===================================================================
--- web/lib/pkgfuncs.inc	(revision 130)
+++ web/lib/pkgfuncs.inc	(working copy)
@@ -531,6 +531,11 @@
 		print "</td>\n";
 	}
 
+	print "<td align='right' valign='bottom'>&nbsp;\n";
+	print "  <input type='submit' class='button' name='do_Orphans'";
+	print " value='".__("Orphans")."'>\n";
+	print "</td>\n";
+
 	print "</tr>\n";
 	print "</table>\n";
 
@@ -590,7 +595,18 @@
 			}
 		}
 	}
-
+	if ($_REQUEST["do_Orphans"]) {
+		# List packages that have neither a Maintainer nor AURMaintainer
+		#
+			if (!$has_where) {
+				$q.= "WHERE (AURMaintainerUID = 0 AND ";
+				$q.= "MaintainerUID = 0) ";
+				$has_where = 1;
+			} else {
+				$q.= "AND (AURMaintainerUID = 0 AND ";
+				$q.= "MaintainerUID = 0) ";
+			}
+	}
 	switch ($_REQUEST["SB"]) {
 		case 'c':
 			$q.= "ORDER BY CategoryID DESC, Name ASC, LocationID ASC ";
@@ -708,6 +724,9 @@
 				if ($row["OutOfDate"]) {
 					print "<span style='background-color: red'>";
 				}
+				if ($row["MaintainerUID"]==0 && $row["AURMaintainerUID"]==0) {
+					print "<span style='background-color: cyan'>";
+				}	
 				print "<input type='checkbox' name='IDs[".$row["ID"]."]' value='1'>";
 #				if ($i == 0) {
 #					$all_ids = $row["ID"];
