diff -urN BitTornado-CVS/BitTornado/launchmanycore.py BitTornado-CVS.mod/BitTornado/launchmanycore.py
--- BitTornado-CVS/BitTornado/launchmanycore.py	2005-08-07 04:58:24.000000000 +0200
+++ BitTornado-CVS.mod/BitTornado/launchmanycore.py	2006-08-23 00:11:29.000000000 +0200
@@ -157,7 +157,7 @@
             self.blocked_files = {}
             self.scan_period = config['parse_dir_interval']
             self.stats_period = config['display_interval']
-
+            self.ratio_drop_period = config['ratio_drop_interval']
             self.torrent_list = []
             self.downloads = {}
             self.counter = 0
@@ -193,7 +193,8 @@
             seed(createPeerID())
             self.rawserver.add_task(self.scan, 0)
             self.rawserver.add_task(self.stats, 0)
-
+            self.rawserver.add_task(self.ratiodrop, 0)
+            
             self.handler.listen_forever()
 
             self.Output.message('shutting down')
@@ -292,6 +293,26 @@
         if stop:
             self.doneflag.set()
 
+    def ratiodrop(self):
+        self.rawserver.add_task(self.ratiodrop, self.ratio_drop_period)
+        for hash in self.torrent_list:
+            cache = self.torrent_cache[hash]
+            d = self.downloads[hash]
+            
+            if d.seed:
+                stats = d.statsfunc()
+                s = stats['stats']
+                if s.downTotal > 0:
+                    ratio = float(s.upTotal) / s.downTotal
+                
+                    if ratio > self.config['drop_ratio']:
+                        if self.config['delete_ratio_dropped']:
+                            os.remove(cache['path'])
+                            self.Output.message('rdeleted "'+cache['path']+'"')
+                        else:
+                            self.remove(hash)
+                            self.Output.message('rdropped "'+cache['path']+'"')
+
     def remove(self, hash):
         self.torrent_list.remove(hash)
         self.downloads[hash].shutdown()
diff -urN BitTornado-CVS/btlaunchmanycurses.py BitTornado-CVS.mod/btlaunchmanycurses.py
--- BitTornado-CVS/btlaunchmanycurses.py	2004-10-05 17:16:04.000000000 +0200
+++ BitTornado-CVS.mod/btlaunchmanycurses.py	2006-08-23 00:11:11.000000000 +0200
@@ -285,6 +285,12 @@
           "2 = save under name in torrent, 3 = save in directory under torrent name)" ),
         ( 'display_path', 0,
           "whether to display the full path or the torrent contents for each torrent" ),
+        ( 'drop_ratio', 100.0,
+          "drop torrent if up/down ratio is equal or greater than argument" ),
+        ( 'ratio_drop_interval', 60,
+          "how often to check if torrents have exceeded drop_ratio, in seconds" ),
+        ( 'delete_ratio_dropped', 0,
+          "whether to delete (instead of drop) torrents when drop ratio is exceeded" ),
     ] )
     try:
         configdir = ConfigDir('launchmanycurses')

