diff --git a/tests/test_decoder.py b/tests/test_decoder.py
index 9503923..d45e607 100644
--- a/tests/test_decoder.py
+++ b/tests/test_decoder.py
@@ -76,29 +76,32 @@ def test_empty():
 
 def test_ref_counts():
     """Note that sys.getrefcount itself adds another reference!"""
+    # In Python 3.14+, getrefcount returns 1, in earlier versions it returns 2
+    expected_refcount = 1 if sys.version_info >= (3, 14) else 2
+    
     # Test regular case
     data_plain = read_plain_yenc_file("test_regular.yenc")
     data_out, filename, filesize, begin, end, crc_correct = sabctools_yenc_wrapper(data_plain)
 
-    assert sys.getrefcount(data_plain) == 2
-    assert sys.getrefcount(data_out) == 2
-    assert sys.getrefcount(filename) == 2
-    assert sys.getrefcount(begin) == 2
-    assert sys.getrefcount(end) == 2
-    assert sys.getrefcount(crc_correct) == 2
+    assert sys.getrefcount(data_plain) == expected_refcount
+    assert sys.getrefcount(data_out) == expected_refcount
+    assert sys.getrefcount(filename) == expected_refcount
+    assert sys.getrefcount(begin) == expected_refcount
+    assert sys.getrefcount(end) == expected_refcount
+    assert sys.getrefcount(crc_correct) == expected_refcount
 
     # Test simple error case
     fake_inp = memoryview(bytearray(b"1234"))
-    assert sys.getrefcount(fake_inp) == 2
+    assert sys.getrefcount(fake_inp) == expected_refcount
     with pytest.raises(ValueError):
         sabctools.yenc_decode(fake_inp)
-    assert sys.getrefcount(fake_inp) == 2
+    assert sys.getrefcount(fake_inp) == expected_refcount
 
     # Test further processing
     data_plain = read_plain_yenc_file("test_bad_crc_end.yenc")
     with pytest.raises(ValueError):
         sabctools_yenc_wrapper(data_plain)
-    assert sys.getrefcount(data_plain) == 2
+    assert sys.getrefcount(data_plain) == expected_refcount
 
 
 def test_crc_pickles():
