diff --git a/daemon_get.py b/daemon_get.py
index 7d3a42794..aeaca946b 100644
--- a/daemon_get.py
+++ b/daemon_get.py
@@ -68,7 +68,6 @@ from webapp_column_left import html_links_mobile
 from webapp_column_right import html_edit_news_post
 from webapp_column_right import html_edit_newswire
 from webapp_column_right import html_newswire_mobile
-from webapp_timeline import html_inbox
 from webapp_theme_designer import html_theme_designer
 from webapp_accesskeys import html_access_keys
 from webapp_manual import html_manual
@@ -156,7 +155,6 @@ from utils import corp_servers
 from utils import decoded_host
 from utils import has_object_dict
 from person import add_alternate_domains
-from person import person_box_json
 from person import save_person_qrcode
 from person import person_lookup
 from person import get_account_pub_key
@@ -197,6 +195,7 @@ from daemon_get_timeline import show_outbox_timeline
 from daemon_get_timeline import show_mod_timeline
 from daemon_get_timeline import show_dms
 from daemon_get_timeline import show_replies
+from daemon_get_timeline import show_inbox
 from daemon_get_feeds import show_shares_feed
 from daemon_get_feeds import show_following_feed
 from daemon_get_feeds import show_moved_feed
@@ -3815,27 +3814,27 @@ def daemon_http_get(self) -> None:
 
     # get the inbox timeline for a given person
     if self.path.endswith('/inbox') or '/inbox?page=' in self.path:
-        if _show_inbox(self, authorized,
-                       calling_domain, referer_domain,
-                       self.path,
-                       self.server.base_dir,
-                       self.server.http_prefix,
-                       self.server.domain,
-                       self.server.port,
-                       getreq_start_time,
-                       cookie, self.server.debug,
-                       self.server.recent_posts_cache,
-                       curr_session,
-                       self.server.default_timeline,
-                       self.server.max_recent_posts,
-                       self.server.translate,
-                       self.server.cached_webfingers,
-                       self.server.person_cache,
-                       self.server.allow_deletion,
-                       self.server.project_version,
-                       self.server.yt_replace_domain,
-                       self.server.twitter_replacement_domain,
-                       ua_str):
+        if show_inbox(self, authorized,
+                      calling_domain, referer_domain,
+                      self.path,
+                      self.server.base_dir,
+                      self.server.http_prefix,
+                      self.server.domain,
+                      self.server.port,
+                      getreq_start_time,
+                      cookie, self.server.debug,
+                      self.server.recent_posts_cache,
+                      curr_session,
+                      self.server.default_timeline,
+                      self.server.max_recent_posts,
+                      self.server.translate,
+                      self.server.cached_webfingers,
+                      self.server.person_cache,
+                      self.server.allow_deletion,
+                      self.server.project_version,
+                      self.server.yt_replace_domain,
+                      self.server.twitter_replacement_domain,
+                      ua_str, MAX_POSTS_IN_FEED):
             self.server.getreq_busy = False
             return
 
@@ -7602,223 +7601,6 @@ def _show_individual_post(self, ssml_getreq: bool, authorized: bool,
     return result
 
 
-def _show_inbox(self, authorized: bool,
-                calling_domain: str, referer_domain: str,
-                path: str,
-                base_dir: str, http_prefix: str,
-                domain: str, port: int,
-                getreq_start_time,
-                cookie: str, debug: str,
-                recent_posts_cache: {}, curr_session,
-                default_timeline: str,
-                max_recent_posts: int,
-                translate: {},
-                cached_webfingers: {},
-                person_cache: {},
-                allow_deletion: bool,
-                project_version: str,
-                yt_replace_domain: str,
-                twitter_replacement_domain: str,
-                ua_str: str) -> bool:
-    """Shows the inbox timeline
-    """
-    if '/users/' in path:
-        if authorized:
-            inbox_feed = \
-                person_box_json(recent_posts_cache,
-                                base_dir,
-                                domain,
-                                port,
-                                path,
-                                http_prefix,
-                                MAX_POSTS_IN_FEED, 'inbox',
-                                authorized,
-                                0,
-                                self.server.positive_voting,
-                                self.server.voting_time_mins)
-            if inbox_feed:
-                if getreq_start_time:
-                    fitness_performance(getreq_start_time,
-                                        self.server.fitness,
-                                        '_GET', '_show_inbox',
-                                        self.server.debug)
-                if request_http(self.headers, debug):
-                    nickname = path.replace('/users/', '')
-                    nickname = nickname.replace('/inbox', '')
-                    page_number = 1
-                    if '?page=' in nickname:
-                        page_number = nickname.split('?page=')[1]
-                        if ';' in page_number:
-                            page_number = page_number.split(';')[0]
-                        nickname = nickname.split('?page=')[0]
-                        if len(page_number) > 5:
-                            page_number = "1"
-                        if page_number.isdigit():
-                            page_number = int(page_number)
-                        else:
-                            page_number = 1
-                    if 'page=' not in path:
-                        # if no page was specified then show the first
-                        inbox_feed = \
-                            person_box_json(recent_posts_cache,
-                                            base_dir,
-                                            domain,
-                                            port,
-                                            path + '?page=1',
-                                            http_prefix,
-                                            MAX_POSTS_IN_FEED, 'inbox',
-                                            authorized,
-                                            0,
-                                            self.server.positive_voting,
-                                            self.server.voting_time_mins)
-                        if getreq_start_time:
-                            fitness_performance(getreq_start_time,
-                                                self.server.fitness,
-                                                '_GET', '_show_inbox2',
-                                                self.server.debug)
-                    full_width_tl_button_header = \
-                        self.server.full_width_tl_button_header
-                    minimal_nick = is_minimal(base_dir, domain, nickname)
-
-                    access_keys = self.server.access_keys
-                    if self.server.key_shortcuts.get(nickname):
-                        access_keys = \
-                            self.server.key_shortcuts[nickname]
-                    shared_items_federated_domains = \
-                        self.server.shared_items_federated_domains
-                    allow_local_network_access = \
-                        self.server.allow_local_network_access
-                    timezone = None
-                    if self.server.account_timezone.get(nickname):
-                        timezone = \
-                            self.server.account_timezone.get(nickname)
-                    bold_reading = False
-                    if self.server.bold_reading.get(nickname):
-                        bold_reading = True
-                    reverse_sequence = False
-                    if nickname in self.server.reverse_sequence:
-                        reverse_sequence = True
-                    last_post_id = None
-                    if ';lastpost=' in path:
-                        last_post_id = path.split(';lastpost=')[1]
-                        if ';' in last_post_id:
-                            last_post_id = last_post_id.split(';')[0]
-                    msg = \
-                        html_inbox(default_timeline,
-                                   recent_posts_cache,
-                                   max_recent_posts,
-                                   translate,
-                                   page_number, MAX_POSTS_IN_FEED,
-                                   curr_session,
-                                   base_dir,
-                                   cached_webfingers,
-                                   person_cache,
-                                   nickname,
-                                   domain,
-                                   port,
-                                   inbox_feed,
-                                   allow_deletion,
-                                   http_prefix,
-                                   project_version,
-                                   minimal_nick,
-                                   yt_replace_domain,
-                                   twitter_replacement_domain,
-                                   self.server.show_published_date_only,
-                                   self.server.newswire,
-                                   self.server.positive_voting,
-                                   self.server.show_publish_as_icon,
-                                   full_width_tl_button_header,
-                                   self.server.icons_as_buttons,
-                                   self.server.rss_icon_at_top,
-                                   self.server.publish_button_at_top,
-                                   authorized,
-                                   self.server.theme_name,
-                                   self.server.peertube_instances,
-                                   allow_local_network_access,
-                                   self.server.text_mode_banner,
-                                   access_keys,
-                                   self.server.system_language,
-                                   self.server.max_like_count,
-                                   shared_items_federated_domains,
-                                   self.server.signing_priv_key_pem,
-                                   self.server.cw_lists,
-                                   self.server.lists_enabled,
-                                   timezone, bold_reading,
-                                   self.server.dogwhistles,
-                                   ua_str,
-                                   self.server.min_images_for_accounts,
-                                   reverse_sequence, last_post_id,
-                                   self.server.buy_sites,
-                                   self.server.auto_cw_cache)
-                    if getreq_start_time:
-                        fitness_performance(getreq_start_time,
-                                            self.server.fitness,
-                                            '_GET', '_show_inbox3',
-                                            self.server.debug)
-                    if msg:
-                        msg_str = msg
-                        onion_domain = self.server.onion_domain
-                        i2p_domain = self.server.i2p_domain
-                        msg_str = convert_domains(calling_domain,
-                                                  referer_domain,
-                                                  msg_str,
-                                                  http_prefix,
-                                                  domain,
-                                                  onion_domain,
-                                                  i2p_domain)
-                        msg = msg_str.encode('utf-8')
-                        msglen = len(msg)
-                        set_headers(self, 'text/html', msglen,
-                                    cookie, calling_domain, False)
-                        write2(self, msg)
-
-                    if getreq_start_time:
-                        fitness_performance(getreq_start_time,
-                                            self.server.fitness,
-                                            '_GET', '_show_inbox4',
-                                            self.server.debug)
-                else:
-                    # don't need authorized fetch here because
-                    # there is already the authorization check
-                    onion_domain = self.server.onion_domain
-                    i2p_domain = self.server.i2p_domain
-                    msg_str = json.dumps(inbox_feed, ensure_ascii=False)
-                    msg_str = convert_domains(calling_domain,
-                                              referer_domain,
-                                              msg_str,
-                                              http_prefix,
-                                              domain,
-                                              onion_domain,
-                                              i2p_domain)
-                    msg = msg_str.encode('utf-8')
-                    msglen = len(msg)
-                    accept_str = self.headers['Accept']
-                    protocol_str = \
-                        get_json_content_from_accept(accept_str)
-                    set_headers(self, protocol_str, msglen,
-                                None, calling_domain, False)
-                    write2(self, msg)
-                    fitness_performance(getreq_start_time,
-                                        self.server.fitness,
-                                        '_GET', '_show_inbox5',
-                                        self.server.debug)
-                return True
-        else:
-            if debug:
-                nickname = path.replace('/users/', '')
-                nickname = nickname.replace('/inbox', '')
-                print('DEBUG: ' + nickname +
-                      ' was not authorized to access ' + path)
-    if path != '/inbox':
-        # not the shared inbox
-        if debug:
-            print('DEBUG: GET access to inbox is unauthorized')
-        self.send_response(405)
-        self.end_headers()
-        return True
-    return False
-
-
 def _show_person_profile(self, authorized: bool,
                          calling_domain: str,
                          referer_domain: str, path: str,
diff --git a/daemon_get_timeline.py b/daemon_get_timeline.py
index f51979ffc..c7dd1e84f 100644
--- a/daemon_get_timeline.py
+++ b/daemon_get_timeline.py
@@ -30,6 +30,7 @@ from webapp_timeline import html_inbox_news
 from webapp_timeline import html_inbox_blogs
 from webapp_timeline import html_inbox_media
 from webapp_timeline import html_inbox_replies
+from webapp_timeline import html_inbox
 from webapp_moderation import html_moderation
 from fitnessFunctions import fitness_performance
 
@@ -1839,3 +1840,221 @@ def show_replies(self, authorized: bool,
         self.end_headers()
         return True
     return False
+
+
+def show_inbox(self, authorized: bool,
+               calling_domain: str, referer_domain: str,
+               path: str,
+               base_dir: str, http_prefix: str,
+               domain: str, port: int,
+               getreq_start_time,
+               cookie: str, debug: str,
+               recent_posts_cache: {}, curr_session,
+               default_timeline: str,
+               max_recent_posts: int,
+               translate: {},
+               cached_webfingers: {},
+               person_cache: {},
+               allow_deletion: bool,
+               project_version: str,
+               yt_replace_domain: str,
+               twitter_replacement_domain: str,
+               ua_str: str,
+               max_posts_in_feed: int) -> bool:
+    """Shows the inbox timeline
+    """
+    if '/users/' in path:
+        if authorized:
+            inbox_feed = \
+                person_box_json(recent_posts_cache,
+                                base_dir,
+                                domain,
+                                port,
+                                path,
+                                http_prefix,
+                                max_posts_in_feed, 'inbox',
+                                authorized,
+                                0,
+                                self.server.positive_voting,
+                                self.server.voting_time_mins)
+            if inbox_feed:
+                if getreq_start_time:
+                    fitness_performance(getreq_start_time,
+                                        self.server.fitness,
+                                        '_GET', '_show_inbox',
+                                        self.server.debug)
+                if request_http(self.headers, debug):
+                    nickname = path.replace('/users/', '')
+                    nickname = nickname.replace('/inbox', '')
+                    page_number = 1
+                    if '?page=' in nickname:
+                        page_number = nickname.split('?page=')[1]
+                        if ';' in page_number:
+                            page_number = page_number.split(';')[0]
+                        nickname = nickname.split('?page=')[0]
+                        if len(page_number) > 5:
+                            page_number = "1"
+                        if page_number.isdigit():
+                            page_number = int(page_number)
+                        else:
+                            page_number = 1
+                    if 'page=' not in path:
+                        # if no page was specified then show the first
+                        inbox_feed = \
+                            person_box_json(recent_posts_cache,
+                                            base_dir,
+                                            domain,
+                                            port,
+                                            path + '?page=1',
+                                            http_prefix,
+                                            max_posts_in_feed, 'inbox',
+                                            authorized,
+                                            0,
+                                            self.server.positive_voting,
+                                            self.server.voting_time_mins)
+                        if getreq_start_time:
+                            fitness_performance(getreq_start_time,
+                                                self.server.fitness,
+                                                '_GET', '_show_inbox2',
+                                                self.server.debug)
+                    full_width_tl_button_header = \
+                        self.server.full_width_tl_button_header
+                    minimal_nick = is_minimal(base_dir, domain, nickname)
+
+                    access_keys = self.server.access_keys
+                    if self.server.key_shortcuts.get(nickname):
+                        access_keys = \
+                            self.server.key_shortcuts[nickname]
+                    shared_items_federated_domains = \
+                        self.server.shared_items_federated_domains
+                    allow_local_network_access = \
+                        self.server.allow_local_network_access
+                    timezone = None
+                    if self.server.account_timezone.get(nickname):
+                        timezone = \
+                            self.server.account_timezone.get(nickname)
+                    bold_reading = False
+                    if self.server.bold_reading.get(nickname):
+                        bold_reading = True
+                    reverse_sequence = False
+                    if nickname in self.server.reverse_sequence:
+                        reverse_sequence = True
+                    last_post_id = None
+                    if ';lastpost=' in path:
+                        last_post_id = path.split(';lastpost=')[1]
+                        if ';' in last_post_id:
+                            last_post_id = last_post_id.split(';')[0]
+                    msg = \
+                        html_inbox(default_timeline,
+                                   recent_posts_cache,
+                                   max_recent_posts,
+                                   translate,
+                                   page_number, max_posts_in_feed,
+                                   curr_session,
+                                   base_dir,
+                                   cached_webfingers,
+                                   person_cache,
+                                   nickname,
+                                   domain,
+                                   port,
+                                   inbox_feed,
+                                   allow_deletion,
+                                   http_prefix,
+                                   project_version,
+                                   minimal_nick,
+                                   yt_replace_domain,
+                                   twitter_replacement_domain,
+                                   self.server.show_published_date_only,
+                                   self.server.newswire,
+                                   self.server.positive_voting,
+                                   self.server.show_publish_as_icon,
+                                   full_width_tl_button_header,
+                                   self.server.icons_as_buttons,
+                                   self.server.rss_icon_at_top,
+                                   self.server.publish_button_at_top,
+                                   authorized,
+                                   self.server.theme_name,
+                                   self.server.peertube_instances,
+                                   allow_local_network_access,
+                                   self.server.text_mode_banner,
+                                   access_keys,
+                                   self.server.system_language,
+                                   self.server.max_like_count,
+                                   shared_items_federated_domains,
+                                   self.server.signing_priv_key_pem,
+                                   self.server.cw_lists,
+                                   self.server.lists_enabled,
+                                   timezone, bold_reading,
+                                   self.server.dogwhistles,
+                                   ua_str,
+                                   self.server.min_images_for_accounts,
+                                   reverse_sequence, last_post_id,
+                                   self.server.buy_sites,
+                                   self.server.auto_cw_cache)
+                    if getreq_start_time:
+                        fitness_performance(getreq_start_time,
+                                            self.server.fitness,
+                                            '_GET', '_show_inbox3',
+                                            self.server.debug)
+                    if msg:
+                        msg_str = msg
+                        onion_domain = self.server.onion_domain
+                        i2p_domain = self.server.i2p_domain
+                        msg_str = convert_domains(calling_domain,
+                                                  referer_domain,
+                                                  msg_str,
+                                                  http_prefix,
+                                                  domain,
+                                                  onion_domain,
+                                                  i2p_domain)
+                        msg = msg_str.encode('utf-8')
+                        msglen = len(msg)
+                        set_headers(self, 'text/html', msglen,
+                                    cookie, calling_domain, False)
+                        write2(self, msg)
+
+                    if getreq_start_time:
+                        fitness_performance(getreq_start_time,
+                                            self.server.fitness,
+                                            '_GET', '_show_inbox4',
+                                            self.server.debug)
+                else:
+                    # don't need authorized fetch here because
+                    # there is already the authorization check
+                    onion_domain = self.server.onion_domain
+                    i2p_domain = self.server.i2p_domain
+                    msg_str = json.dumps(inbox_feed, ensure_ascii=False)
+                    msg_str = convert_domains(calling_domain,
+                                              referer_domain,
+                                              msg_str,
+                                              http_prefix,
+                                              domain,
+                                              onion_domain,
+                                              i2p_domain)
+                    msg = msg_str.encode('utf-8')
+                    msglen = len(msg)
+                    accept_str = self.headers['Accept']
+                    protocol_str = \
+                        get_json_content_from_accept(accept_str)
+                    set_headers(self, protocol_str, msglen,
+                                None, calling_domain, False)
+                    write2(self, msg)
+                    fitness_performance(getreq_start_time,
+                                        self.server.fitness,
+                                        '_GET', '_show_inbox5',
+                                        self.server.debug)
+                return True
+        else:
+            if debug:
+                nickname = path.replace('/users/', '')
+                nickname = nickname.replace('/inbox', '')
+                print('DEBUG: ' + nickname +
+                      ' was not authorized to access ' + path)
+    if path != '/inbox':
+        # not the shared inbox
+        if debug:
+            print('DEBUG: GET access to inbox is unauthorized')
+        self.send_response(405)
+        self.end_headers()
+        return True
+    return False