diff --git a/urls.py b/urls.py
index 3a8c0cf..da420a0 100644
--- a/urls.py
+++ b/urls.py
@@ -130,6 +130,7 @@ trogglepatterns = [
     #re_path(r'^cave/(?P<cave_id>[^/]+)/?$', caves.cave, name="cave"), # used only in testing !? XXXXXXXXXXXXXXXXXXXXXXXXXX
     #re_path(r'^cave/(?P<cave_id>[^/]+)/?(?P<ent_letter>[^/])$', ent), #!!!BAD, local links fail..# view_caves.ent
     re_path(r'^(?P<slug>[^/]+)_cave_edit/$',           edit_cave, name="edit_cave"), # edit_cave needed by cave.html template for url matching
+    re_path(r'^(.*)_edit$',         editexpopage, name="editexpopage"),
     re_path(r'^(?P<karea>\d\d\d\d)(?P<subpath>.*)$',   cavepage,  name="cavepage"), # shorthand /1623/264 or 1623/161/top.htm
     # Note that urls eg '/1623/161/l/rl89a.htm' are handled by cavepage which redirects them to 'expopage'
     # Note that _edit$ for a cave description page in a subfolder e.g. /1623/204/204.html_edit  gets caught here and breaks with 404
@@ -191,7 +192,6 @@ trogglepatterns = [
     re_path(r'^map/(?P<path>.*)$',     mapfile, name="mapfile"),  # css, js, gpx
 
 # Final catchall which also serves expoweb handbook pages and images
-    re_path(r'^(.*)_edit$',         editexpopage, name="editexpopage"),
     re_path(r'^(.*)$',              expopage,     name="expopage"),     # CATCHALL assumed relative to EXPOWEB
 ]