diff --git a/test/cql-pytest/test_frozen_collection.py b/test/cql-pytest/test_frozen_collection.py
new file mode 100644
index 0000000000..64b2daaf22
--- /dev/null
+++ b/test/cql-pytest/test_frozen_collection.py
@@ -0,0 +1,128 @@
+
+#
+# This file is part of Scylla.
+#
+# Scylla is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Scylla is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with Scylla. If not, see .
+
+#############################################################################
+# Various tests for the handling of frozen collections. Note that Cassandra
+# also had extensive tests for frozen collections, which we ported in
+# cassandra_tests/validation/entities/frozen_collections_test.py. The tests
+# here are either additional ones, focusing on more esoteric issues.
+#############################################################################
+
+import pytest
+import random
+from cassandra.util import SortedSet, OrderedMapSerializedKey
+from util import unique_name
+
+
+# A test table with a (frozen) nested collection as its primary key.
+@pytest.fixture(scope="session")
+def table1(cql, test_keyspace):
+ table = test_keyspace + "." + unique_name()
+ cql.execute(f"CREATE TABLE {table} (k frozen