Index: trac/wiki/web_ui.py
===================================================================
--- trac/wiki/web_ui.py	(revision 3423)
+++ trac/wiki/web_ui.py	(working copy)
@@ -193,11 +193,16 @@
         if req.args.has_key('cancel'):
             req.redirect(req.href.wiki(page.name))
 
-        version = None
-        if req.args.has_key('version'):
-            version = int(req.args.get('version', 0))
+        version = int(req.args.get('version', 0)) or None
+        old_version = int(req.args.get('old_version', 0)) or version
 
-        page.delete(version, db)
+        if version and old_version and version > old_version:
+            # delete from `old_version` exclusive to `version` inclusive:
+            for v in range(old_version, version):
+                page.delete(v + 1, db)
+        else:
+            # only delete that `version`, or the whole page if `None`
+            page.delete(version, db)
         db.commit()
 
         if not page.exists:
@@ -241,17 +246,19 @@
         version = None
         if req.args.has_key('delete_version'):
             version = int(req.args.get('version', 0))
+        old_version = int(req.args.get('old_version', 0)) or version
 
         self._set_title(req, page, 'delete')
         req.hdf['wiki'] = {'mode': 'delete'}
         if version is not None:
-            req.hdf['wiki.version'] = version
             num_versions = 0
-            for change in page.get_history():
-                num_versions += 1;
-                if num_versions > 1:
-                    break
-            req.hdf['wiki.only_version'] = num_versions == 1
+            for v,t,author,comment,ipnr in page.get_history():
+                if v >= old_version:
+                    num_versions += 1;
+                    if num_versions > 1:
+                        break
+            req.hdf['wiki'] = {'version': version, 'old_version': old_version,
+                               'only_version': num_versions == 1}
 
     def _render_diff(self, req, db, page):
         req.perm.assert_permission('WIKI_VIEW')
Index: templates/wiki.cs
===================================================================
--- templates/wiki.cs	(revision 3423)
+++ templates/wiki.cs	(working copy)
@@ -41,28 +41,39 @@
 
 <div id="content" class="wiki">
 
- <?cs if wiki.action == "delete" ?>
-  <h1>Delete <?cs
-   if:?wiki.version ?>version <?cs var:wiki.version ?> of <?cs /if ?><a href="<?cs
+ <?cs if wiki.action == "delete" ?><?cs 
+  if:wiki.version - wiki.old_version > 1 ?><?cs
+   set:first_version = wiki.old_version + 1 ?><?cs
+   set:version_range = "versions "+first_version+" to "+wiki.version+" of " ?><?cs
+   set:delete_what = "those versions" ?><?cs
+  elif:wiki.version ?><?cs
+   set:version_range = "version "+wiki.version+" of " ?><?cs
+   set:delete_what = "this version" ?><?cs
+  else ?><?cs
+   set:version_range = "" ?><?cs
+   set:delete_what = "page" ?><?cs
+  /if ?>
+  <h1>Delete <?cs var:version_range ?><a href="<?cs
     var:wiki.current_href ?>"><?cs var:wiki.page_name ?></a></h1>
   <form action="<?cs var:wiki.current_href ?>" method="post">
    <input type="hidden" name="action" value="delete" />
    <p><strong>Are you sure you want to <?cs
-    if:!?wiki.version ?>completely <?cs /if ?>delete <?cs
-    if:?wiki.version ?>version <?cs var:wiki.version ?> of <?cs
-    /if ?>this page?</strong><br /><?cs
+    if:!?wiki.version ?>completely <?cs 
+    /if ?>delete <?cs var:version_range ?>this page?</strong><br /><?cs
    if:wiki.only_version ?>
     This is the only version the page, so the page will be removed
     completely!<?cs
    /if ?><?cs
    if:?wiki.version ?>
     <input type="hidden" name="version" value="<?cs var:wiki.version ?>" /><?cs
+   /if ?><?cs
+   if:wiki.old_version ?>
+    <input type="hidden" name="old_version" value="<?cs var:wiki.old_version ?>" /><?cs
    /if ?>
    This is an irreversible operation.</p>
    <div class="buttons">
     <input type="submit" name="cancel" value="Cancel" />
-    <input type="submit" value="Delete <?cs
-      if:?wiki.version ?>this version<?cs else ?>page<?cs /if ?>" />
+    <input type="submit" value="Delete <?cs var:delete_what ?>" />
    </div>
   </form>
  
@@ -169,7 +180,18 @@
       </table><?cs
      /if ?>
     </li>
-   </ul>
+   </ul><?cs
+   if:trac.acl.WIKI_DELETE ?>
+    <form method="get" action="<?cs var:wiki.current_href ?>">
+     <input type="hidden" name="action" value="delete" />
+     <input type="hidden" name="version" value="<?cs var:wiki.version ?>" />
+     <input type="hidden" name="old_version" value="<?cs var:wiki.old_version ?>" />
+     <input type="submit" name="delete_version" value="Delete <?cs
+     if:wiki.version - wiki.old_version > 1 ?> version <?cs 
+      var:wiki.old_version+1 ?> to <?cs 
+     /if ?>version <?cs var:wiki.version ?>" />
+    </form><?cs
+   /if ?>
   </div>
 
  <?cs elif wiki.action == "history" ?>
