diff --git a/stix2/base.py b/stix2/base.py
index 76b07b8..fc13094 100644
--- a/stix2/base.py
+++ b/stix2/base.py
@@ -161,9 +161,12 @@ class _STIXBase(collections.Mapping):
                                  ", ".join(["{0!s}={1!r}".format(k, v) for k, v in props]))
 
     def __deepcopy__(self, memo):
-        # Assumption: we can ignore the memo argument, because no object will ever contain the same sub-object multiple times.
+        # Assume: we can ignore the memo argument, because no object will ever contain the same sub-object multiple times.
         new_inner = copy.deepcopy(self._inner, memo)
         cls = type(self)
+        if isinstance(self, _Observable):
+            # Assume: valid references in the original object are still valid in the new version
+            new_inner['_valid_refs'] = {'*': '*'}
         return cls(**new_inner)
 
     def properties_populated(self):
@@ -221,6 +224,9 @@ class _Observable(_STIXBase):
         super(_Observable, self).__init__(**kwargs)
 
     def _check_ref(self, ref, prop, prop_name):
+        if '*' in self._STIXBase__valid_refs:
+            return  # don't check if refs are valid
+
         if ref not in self._STIXBase__valid_refs:
             raise InvalidObjRefError(self.__class__, prop_name, "'%s' is not a valid object in local scope" % ref)
 

Fail to create new version of ObservedData if it has related objects
If you try to generate a new version of an ObservedData which contains related objects (like domain-name -> ipv4) you obtain a fatal error
Example:
`from stix2 import ObservedData`
`from datetime import datetime`
`data = ObservedData(first_observed=datetime.now(),last_observed=datetime.now(),number_observed=1,objects={'src_ip': {'type':'ipv4-addr','value':'127.0.0.1/32'}, 'domain':{'type':'domain-name','value':'example.com','resolves_to_refs':['src_ip']}})`
`new_version = data.new_version(last_observed=datetime.now())`

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.6/site-packages/stix2/base.py", line 175, in new_version
    return _new_version(self, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/stix2/utils.py", line 212, in new_version
    new_obj_inner = copy.deepcopy(data._inner)
  File "/usr/local/Cellar/python3/3.6.4_2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 150, in deepcopy
    y = copier(x, memo)
  File "/usr/local/Cellar/python3/3.6.4_2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 240, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/local/Cellar/python3/3.6.4_2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 150, in deepcopy
    y = copier(x, memo)
  File "/usr/local/Cellar/python3/3.6.4_2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 240, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/local/Cellar/python3/3.6.4_2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 161, in deepcopy
    y = copier(memo)
  File "/usr/local/lib/python3.6/site-packages/stix2/base.py", line 167, in __deepcopy__
    return cls(**new_inner)
  File "/usr/local/lib/python3.6/site-packages/stix2/base.py", line 221, in __init__
    super(_Observable, self).__init__(**kwargs)
  File "/usr/local/lib/python3.6/site-packages/stix2/base.py", line 128, in __init__
    self._check_property(prop_name, prop_metadata, setting_kwargs)
  File "/usr/local/lib/python3.6/site-packages/stix2/base.py", line 251, in _check_property
    self._check_ref(ref, prop, prop_name)
  File "/usr/local/lib/python3.6/site-packages/stix2/base.py", line 225, in _check_ref
    raise InvalidObjRefError(self.__class__, prop_name, "'%s' is not a valid object in local scope" % ref)`

The error appears also if you use an incremental value as index in objects dictionary
diff --git a/stix2/test/test_observed_data.py b/stix2/test/test_observed_data.py
index 3029b68..30c3cab 100644
--- a/stix2/test/test_observed_data.py
+++ b/stix2/test/test_observed_data.py
@@ -1162,3 +1162,25 @@ def test_x509_certificate_example():
     assert x509.type == "x509-certificate"
     assert x509.issuer == "C=ZA, ST=Western Cape, L=Cape Town, O=Thawte Consulting cc, OU=Certification Services Division, CN=Thawte Server CA/emailAddress=server-certs@thawte.com"  # noqa
     assert x509.subject == "C=US, ST=Maryland, L=Pasadena, O=Brent Baccala, OU=FreeSoft, CN=www.freesoft.org/emailAddress=baccala@freesoft.org"  # noqa
+
+
+def test_new_version_with_related_objects():
+    data = stix2.ObservedData(
+        first_observed="2016-03-12T12:00:00Z",
+        last_observed="2016-03-12T12:00:00Z",
+        number_observed=1,
+        objects={
+            'src_ip': {
+                'type': 'ipv4-addr',
+                'value': '127.0.0.1/32'
+            },
+            'domain': {
+                'type': 'domain-name',
+                'value': 'example.com',
+                'resolves_to_refs': ['src_ip']
+            }
+        }
+    )
+    new_version = data.new_version(last_observed="2017-12-12T12:00:00Z")
+    assert new_version.last_observed.year == 2017
+    assert new_version.objects['domain'].resolves_to_refs[0] == 'src_ip'

pip install -e .
parse_log_pytest
requirements.txt
pytest pytest-cov
apt-get update apt-get install -y gcc
3.6
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
alabaster==0.7.13
antlr4-python3-runtime==4.9.3
async-generator==1.10
attrs==22.2.0
Babel==2.11.0
bleach==4.1.0
bump2version==1.0.1
bumpversion==0.6.0
certifi==2021.5.30
cfgv==3.3.1
charset-normalizer==2.0.12
coverage==6.2
decorator==5.1.1
defusedxml==0.7.1
distlib==0.3.9
docutils==0.18.1
entrypoints==0.4
filelock==3.4.1
identify==2.4.4
idna==3.10
imagesize==1.4.1
importlib-metadata==4.8.3
importlib-resources==5.2.3
iniconfig==1.1.1
ipython-genutils==0.2.0
Jinja2==3.0.3
jsonschema==3.2.0
jupyter-client==7.1.2
jupyter-core==4.9.2
jupyterlab-pygments==0.1.2
MarkupSafe==2.0.1
mistune==0.8.4
nbclient==0.5.9
nbconvert==6.0.7
nbformat==5.1.3
nbsphinx==0.8.8
nest-asyncio==1.6.0
nodeenv==1.6.0
packaging==21.3
pandocfilters==1.5.1
platformdirs==2.4.0
pluggy==1.0.0
pre-commit==2.17.0
py==1.11.0
Pygments==2.14.0
pyparsing==3.1.4
pyrsistent==0.18.0
pytest==7.0.1
pytest-cov==4.0.0
python-dateutil==2.9.0.post0
pytz==2025.2
PyYAML==6.0.1
pyzmq==25.1.2
requests==2.27.1
simplejson==3.20.1
six==1.17.0
snowballstemmer==2.2.0
Sphinx==5.3.0
sphinx-prompt==1.5.0
sphinxcontrib-applehelp==1.0.2
sphinxcontrib-devhelp==1.0.2
sphinxcontrib-htmlhelp==2.0.0
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==1.0.3
sphinxcontrib-serializinghtml==1.1.5
-e git+https://github.com/oasis-open/cti-python-stix2.git@b1a020bb38d74c407ac125b1e032850acfe7a880#egg=stix2
stix2-patterns==2.0.0
taxii2-client==2.3.0
testpath==0.6.0
toml==0.10.2
tomli==1.2.3
tornado==6.1
tox==3.28.0
traitlets==4.3.3
typing_extensions==4.1.1
urllib3==1.26.20
virtualenv==20.16.2
webencodings==0.5.1
zipp==3.6.0

name: cti-python-stix2
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=21.2.2=py36h06a4308_0
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - alabaster==0.7.13
      - antlr4-python3-runtime==4.9.3
      - async-generator==1.10
      - attrs==22.2.0
      - babel==2.11.0
      - bleach==4.1.0
      - bump2version==1.0.1
      - bumpversion==0.6.0
      - cfgv==3.3.1
      - charset-normalizer==2.0.12
      - coverage==6.2
      - decorator==5.1.1
      - defusedxml==0.7.1
      - distlib==0.3.9
      - docutils==0.18.1
      - entrypoints==0.4
      - filelock==3.4.1
      - identify==2.4.4
      - idna==3.10
      - imagesize==1.4.1
      - importlib-metadata==4.8.3
      - importlib-resources==5.2.3
      - iniconfig==1.1.1
      - ipython-genutils==0.2.0
      - jinja2==3.0.3
      - jsonschema==3.2.0
      - jupyter-client==7.1.2
      - jupyter-core==4.9.2
      - jupyterlab-pygments==0.1.2
      - markupsafe==2.0.1
      - mistune==0.8.4
      - nbclient==0.5.9
      - nbconvert==6.0.7
      - nbformat==5.1.3
      - nbsphinx==0.8.8
      - nest-asyncio==1.6.0
      - nodeenv==1.6.0
      - packaging==21.3
      - pandocfilters==1.5.1
      - platformdirs==2.4.0
      - pluggy==1.0.0
      - pre-commit==2.17.0
      - py==1.11.0
      - pygments==2.14.0
      - pyparsing==3.1.4
      - pyrsistent==0.18.0
      - pytest==7.0.1
      - pytest-cov==4.0.0
      - python-dateutil==2.9.0.post0
      - pytz==2025.2
      - pyyaml==6.0.1
      - pyzmq==25.1.2
      - requests==2.27.1
      - simplejson==3.20.1
      - six==1.17.0
      - snowballstemmer==2.2.0
      - sphinx==5.3.0
      - sphinx-prompt==1.5.0
      - sphinxcontrib-applehelp==1.0.2
      - sphinxcontrib-devhelp==1.0.2
      - sphinxcontrib-htmlhelp==2.0.0
      - sphinxcontrib-jsmath==1.0.1
      - sphinxcontrib-qthelp==1.0.3
      - sphinxcontrib-serializinghtml==1.1.5
      - stix2-patterns==2.0.0
      - taxii2-client==2.3.0
      - testpath==0.6.0
      - toml==0.10.2
      - tomli==1.2.3
      - tornado==6.1
      - tox==3.28.0
      - traitlets==4.3.3
      - typing-extensions==4.1.1
      - urllib3==1.26.20
      - virtualenv==20.16.2
      - webencodings==0.5.1
      - zipp==3.6.0
prefix: /opt/conda/envs/cti-python-stix2

stix2/test/test_observed_data.py::test_new_version_with_related_objects
stix2/test/test_observed_data.py::test_observed_data_example stix2/test/test_observed_data.py::test_observed_data_example_with_refs stix2/test/test_observed_data.py::test_observed_data_example_with_bad_refs stix2/test/test_observed_data.py::test_observed_data_example_with_non_dictionary stix2/test/test_observed_data.py::test_observed_data_example_with_empty_dictionary stix2/test/test_observed_data.py::test_parse_observed_data[{\n stix2/test/test_observed_data.py::test_parse_observed_data[data1] stix2/test/test_observed_data.py::test_parse_artifact_valid["0": stix2/test/test_observed_data.py::test_parse_artifact_invalid["0": stix2/test/test_observed_data.py::test_artifact_example_dependency_error stix2/test/test_observed_data.py::test_parse_autonomous_system_valid["0": stix2/test/test_observed_data.py::test_parse_email_address[{\n stix2/test/test_observed_data.py::test_parse_email_message[\n stix2/test/test_observed_data.py::test_parse_email_message_not_multipart[\n stix2/test/test_observed_data.py::test_parse_file_archive["0": stix2/test/test_observed_data.py::test_parse_email_message_with_at_least_one_error[\n stix2/test/test_observed_data.py::test_parse_basic_tcp_traffic[\n stix2/test/test_observed_data.py::test_parse_basic_tcp_traffic_with_error[\n stix2/test/test_observed_data.py::test_observed_data_with_process_example stix2/test/test_observed_data.py::test_artifact_example stix2/test/test_observed_data.py::test_artifact_mutual_exclusion_error stix2/test/test_observed_data.py::test_directory_example stix2/test/test_observed_data.py::test_directory_example_ref_error stix2/test/test_observed_data.py::test_domain_name_example stix2/test/test_observed_data.py::test_domain_name_example_invalid_ref_type stix2/test/test_observed_data.py::test_file_example stix2/test/test_observed_data.py::test_file_example_with_NTFSExt stix2/test/test_observed_data.py::test_file_example_with_empty_NTFSExt stix2/test/test_observed_data.py::test_file_example_with_PDFExt stix2/test/test_observed_data.py::test_file_example_with_PDFExt_Object stix2/test/test_observed_data.py::test_file_example_with_RasterImageExt_Object stix2/test/test_observed_data.py::test_file_example_with_WindowsPEBinaryExt stix2/test/test_observed_data.py::test_file_example_encryption_error stix2/test/test_observed_data.py::test_ip4_address_example stix2/test/test_observed_data.py::test_ip4_address_example_cidr stix2/test/test_observed_data.py::test_ip6_address_example stix2/test/test_observed_data.py::test_mac_address_example stix2/test/test_observed_data.py::test_network_traffic_example stix2/test/test_observed_data.py::test_network_traffic_http_request_example stix2/test/test_observed_data.py::test_network_traffic_icmp_example stix2/test/test_observed_data.py::test_network_traffic_socket_example stix2/test/test_observed_data.py::test_network_traffic_tcp_example stix2/test/test_observed_data.py::test_mutex_example stix2/test/test_observed_data.py::test_process_example stix2/test/test_observed_data.py::test_process_example_empty_error stix2/test/test_observed_data.py::test_process_example_empty_with_extensions stix2/test/test_observed_data.py::test_process_example_windows_process_ext stix2/test/test_observed_data.py::test_process_example_windows_process_ext_empty stix2/test/test_observed_data.py::test_process_example_extensions_empty stix2/test/test_observed_data.py::test_process_example_with_WindowsProcessExt_Object stix2/test/test_observed_data.py::test_process_example_with_WindowsServiceExt stix2/test/test_observed_data.py::test_process_example_with_WindowsProcessServiceExt stix2/test/test_observed_data.py::test_software_example stix2/test/test_observed_data.py::test_url_example stix2/test/test_observed_data.py::test_user_account_example stix2/test/test_observed_data.py::test_user_account_unix_account_ext_example stix2/test/test_observed_data.py::test_windows_registry_key_example stix2/test/test_observed_data.py::test_x509_certificate_example
stix2/base.py
stix2/base.py