diff --git a/CHANGELOG.md b/CHANGELOG.md
index aca13b7ec56f0726ccf0f85861c7319366576656..03f0808a1135b2d2e693dddaac08412f9c2bd5bf 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ### Added (for new features)
 
+* Test for [caosdb-pylib#89](https://gitlab.com/linkahead/linkahead-pylib/-/issues/89)
+* Test for [caosdb-pylib#103](https://gitlab.com/linkahead/linkahead-pylib/-/issues/103)
 * Tests for entity state [caosdb-server!62](https://gitlab.com/caosdb/caosdb-server/-/merge_requests/62)
 * Tests for version history
 * Tests for inheritance bug (caosdb/caosdb-server!54)
diff --git a/tests/test_issues_pylib.py b/tests/test_issues_pylib.py
index ec9e873c7b8cd2375570021672bb8eb2bc1ca5c3..94ffa891748a575bd810fb6ac00be4c09f3effd8 100644
--- a/tests/test_issues_pylib.py
+++ b/tests/test_issues_pylib.py
@@ -28,8 +28,10 @@ import math
 import os
 import tempfile
 import time
+import warnings
 
 import linkahead as db
+import linkahead.common.utils
 import pytest
 
 from linkahead import administration as admin
@@ -66,6 +68,50 @@ def teardown_function(function):
 # ########################### Issue tests start here #####################
 
 
+def test_gitlab_com_89():
+    """
+    Test that after retrieving an entity from the server, generating an xml
+    string and subsequently recreating the container from xml does not
+    generate any errors.
+
+    See https://gitlab.com/linkahead/linkahead-pylib/-/issues/89 and
+    https://gitlab.indiscale.com/caosdb/customers/f-fit/management/-/issues/81
+    """
+    # We need a container generated with data from the server
+    rt = db.RecordType(name="TestType")
+    rt.insert()
+    container = db.execute_query("FIND RECORDTYPE *")
+
+    # With this container, to_xml, xml2str, and from_xml should not generate
+    # warnings - the simplefilter means that any warning fails the test
+    with warnings.catch_warnings():
+        warnings.simplefilter("error")
+        xml_str = linkahead.common.utils.xml2str(container.to_xml())
+        cont_from_xml = db.Container.from_xml(xml_str)
+        assert len(cont_from_xml) == len(container)
+        assert cont_from_xml[0].name == rt.name
+
+
+def test_gitlab_com_103():
+    """
+    Test that after causing an UriTooLong error the used auth_token
+    is still valid.
+
+    See https://gitlab.com/linkahead/linkahead-pylib/-/issues/103 and
+    https://gitlab.indiscale.com/caosdb/customers/f-fit/management/-/issues/82
+    """
+    # Configure connection to use auth_token
+    auth_token = db.get_connection()._authenticator.auth_token
+    db.configure_connection(auth_token=auth_token)
+
+    # Trigger UriTooLong error and check correct error thrown
+    c = db.Container()
+    c.extend([db.Record(id=i) for i in range(1000, 5000)])
+    with pytest.raises(db.exceptions.TransactionError) as te:
+        c.retrieve()
+        assert "authentication token" not in str(te)
+
+
 # @pytest.mark.xfail(reason="Entities with many, long, properties: "
 #                    "https://gitlab.com/linkahead/linkahead-pylib/-/issues/108")
 def test_gitlab_com_108():
diff --git a/tests/test_server_side_scripting.py b/tests/test_server_side_scripting.py
index 1ad258ea335a1ab7a35d7ab2b1a5880bfb0c56de..e0f60b1f6dae66800adf7652dcd703293261226e 100644
--- a/tests/test_server_side_scripting.py
+++ b/tests/test_server_side_scripting.py
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 #
 # ** header v3.0
-# This file is a part of the CaosDB Project.
+# This file is a part of the LinkAhead Project.
 #
 # Copyright (C) 2018 Research Group Biomedical Physics,
 # Max-Planck-Institute for Dynamics and Self-Organization Göttingen
@@ -33,13 +33,13 @@ import ssl
 import tempfile
 from http.client import HTTPSConnection
 
-from caosdb import Info, RecordType
-from caosdb import administration as admin
-from caosdb import execute_query, get_config, get_connection
-from caosdb.connection.encode import MultipartParam, multipart_encode
-from caosdb.connection.utils import urlencode, urlparse
-from caosdb.exceptions import HTTPClientError, HTTPResourceNotFoundError
-from caosdb.utils.server_side_scripting import run_server_side_script
+from linkahead import Info, RecordType
+from linkahead import administration as admin
+from linkahead import execute_query, get_config, get_connection
+from linkahead.connection.encode import MultipartParam, multipart_encode
+from linkahead.connection.utils import urlencode, urlparse
+from linkahead.exceptions import HTTPClientError, HTTPResourceNotFoundError
+from linkahead.utils.server_side_scripting import run_server_side_script
 from lxml import etree
 from pytest import mark, raises
 
@@ -142,6 +142,29 @@ def teardown_module():
     clean_database()
 
 
+def request(method, headers, path, body=None):
+    """Connect without auth-token.
+
+    This is clumsy because the pylib is not intended to be used as anonymous user.
+    """
+    context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
+    context.verify_mode = ssl.CERT_REQUIRED
+
+    if hasattr(context, "check_hostname"):
+        context.check_hostname = True
+    context.load_verify_locations(get_config().get("Connection", "cacert"))
+
+    url = get_config().get("Connection", "url")
+    fullurl = urlparse(url)
+
+    http_con = HTTPSConnection(
+        str(fullurl.netloc), timeout=200, context=context)
+    http_con.request(method=method, headers=headers, url=str(fullurl.path) +
+                     path, body=body)
+
+    return http_con.getresponse()
+
+
 def test_call_script_non_existing():
     form = dict()
     form["call"] = "non_existing_script"
@@ -355,28 +378,6 @@ def test_call_as_anonymous_with_administration_role():
     assert "exception" not in diagnostics["caosdb"]
 
 
-def request(method, headers, path, body=None):
-    """ Connect without auth-token. This is clumsy, bc the pylib is not
-    intended to be used as anonymous user.
-    """
-    context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
-    context.verify_mode = ssl.CERT_REQUIRED
-
-    if hasattr(context, "check_hostname"):
-        context.check_hostname = True
-    context.load_verify_locations(get_config().get("Connection", "cacert"))
-
-    url = get_config().get("Connection", "url")
-    fullurl = urlparse(url)
-
-    http_con = HTTPSConnection(
-        str(fullurl.netloc), timeout=200, context=context)
-    http_con.request(method=method, headers=headers, url=str(fullurl.path) +
-                     path, body=body)
-
-    return http_con.getresponse()
-
-
 def test_anonymous_script_calling_not_permitted():
     form = dict()
     form["call"] = "ok"