diff --git a/daemon.py b/daemon.py
index 438d32eb4..e8bd09bb6 100644
--- a/daemon.py
+++ b/daemon.py
@@ -183,6 +183,7 @@ from webapp_confirm import html_confirm_unblock
 from webapp_person_options import person_minimize_images
 from webapp_person_options import person_undo_minimize_images
 from webapp_person_options import html_person_options
+from webapp_timeline import text_mode_browser
 from webapp_timeline import html_shares
 from webapp_timeline import html_wanted
 from webapp_timeline import html_inbox
@@ -657,8 +658,7 @@ class PubServer(BaseHTTPRequestHandler):
                 return False
         if accept_str.startswith('*'):
             if self.headers.get('User-Agent'):
-                if 'ELinks' in self.headers['User-Agent'] or \
-                   'Lynx' in self.headers['User-Agent']:
+                if text_mode_browser(self.headers['User-Agent']):
                     return True
             return False
         if 'json' in accept_str:
diff --git a/webapp_timeline.py b/webapp_timeline.py
index 4a3979044..fdf2f7df9 100644
--- a/webapp_timeline.py
+++ b/webapp_timeline.py
@@ -382,10 +382,10 @@ def _html_timeline_keyboard(moderator: bool, text_mode_banner: str,
                                     follow_approvals)
 
 
-def _text_mode_browser(ua_str: str) -> bool:
+def text_mode_browser(ua_str: str) -> bool:
     """Does the user agent indicate a text mode browser?
     """
-    text_mode_agents = ('Lynx/', 'w3m/', 'Links (', 'Emacs/')
+    text_mode_agents = ('Lynx/', 'w3m/', 'Links (', 'Emacs/', 'ELinks')
     for agent in text_mode_agents:
         if agent in ua_str:
             return True
@@ -413,7 +413,7 @@ def _html_timeline_end(base_dir: str, nickname: str, domain_full: str,
 
     # right column
     right_column_str = ''
-    if not _text_mode_browser(ua_str):
+    if not text_mode_browser(ua_str):
         right_column_str = \
             get_right_column_content(base_dir, nickname, domain_full,
                                      http_prefix, translate,
@@ -825,7 +825,7 @@ def html_timeline(default_timeline: str,
 
     # left column
     left_column_str = ''
-    if not _text_mode_browser(ua_str):
+    if not text_mode_browser(ua_str):
         left_column_str = \
             get_left_column_content(base_dir, nickname, domain_full,
                                     http_prefix, translate,