diff --git a/router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java b/router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java
index ae72bc87ed0cc48b897db8fde8e14ca86e96a1ce..8f99d684c7432faef196e06d888506d5699114e6 100644
--- a/router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java
+++ b/router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java
@@ -1223,6 +1223,10 @@ public class Reseeder {
      *  @since 0.9.58
      */
     public static void main(String args[]) throws Exception {
+        if (args.length == 1 && args[0].equals("help")) {
+            System.out.println("Usage: reseeder [https://hostname/ ...]");
+            System.exit(1);
+        }
         File f = new File("certificates");
         if (!f.exists()) {
             System.out.println("Must be run from $I2P or have symlink to $I2P/certificates in this directory");
@@ -1256,22 +1260,35 @@ public class Reseeder {
                         su3f.verifyAndMigrate(zip);
                         SU3File.main(new String[] {"showversion", su3.getPath()});
                         String version = su3f.getVersionString();
-                        try {
-                            Long ver = Long.parseLong(version.trim());
-                            ver *= 1000;
-                            if (ver < System.currentTimeMillis() - MAX_FILE_AGE / 4)
-                                throw new IOException("su3 file too old");
-                        } catch (NumberFormatException nfe) {}
+                        long ver = Long.parseLong(version.trim()) * 1000;
+                        long cutoff = System.currentTimeMillis() - MAX_FILE_AGE / 4;
+                        if (ver < cutoff)
+                            throw new IOException("su3 file too old");
                         java.util.zip.ZipFile zipf = new java.util.zip.ZipFile(zip);
                         java.util.Enumeration<? extends java.util.zip.ZipEntry> entries = zipf.entries();
-                        int ri = 0;
+                        int ri = 0, old = 0;
                         while (entries.hasMoreElements()) {
-                            entries.nextElement();
-                            ri++;
+                            java.util.zip.ZipEntry entry = (java.util.zip.ZipEntry) entries.nextElement();
+                            net.i2p.data.router.RouterInfo r = new net.i2p.data.router.RouterInfo();
+                            InputStream in = zipf.getInputStream(entry);
+                            r.readBytes(in);
+                            in.close();
+                            if (r.getPublished() > cutoff)
+                                ri++;
+                            else
+                                old++;
                         }
                         zipf.close();
-                        System.out.println("Test passed for " + host + ", returned " + ri + " router infos");
-                        pass++;
+                        if (old > 0) {
+                            System.out.println("Test failed for " + host + ", returned " + ri + " old router infos");
+                            fail++;
+                        } else if (ri >= 50) {
+                            System.out.println("Test passed for " + host + ", returned " + ri + " router infos");
+                            pass++;
+                        } else {
+                            System.out.println("Test failed for " + host + ", returned only " + ri + " router infos");
+                            fail++;
+                        }
                     } else {
                         System.out.println("Test failed for " + host + " return code: " + rc);
                         su3.delete();
@@ -1283,7 +1300,7 @@ public class Reseeder {
                     su3.delete();
                     fail++;
                 }
-            } catch (IOException ioe) {
+            } catch (Exception ioe) {
                 System.out.println("Test failed for " + host + ": " + ioe);
                 ioe.printStackTrace();
                 if (su3.exists()) {