diff --git a/_docs/changelog.md b/_docs/changelog.md
index 8a90d7ba9..2c1676503 100644
--- a/_docs/changelog.md
+++ b/_docs/changelog.md
@@ -3,6 +3,12 @@ layout: docs
title: Change Log
short_title: Change Log
---
+## [1.6.1](https://github.com/jhpyle/docassemble/releases/tag/v1.6.1) - 2024-12-07
+
+
+### Fixed
+- Rendering issue with radio buttons and checkboxes on Safari.
+
## [1.6.0](https://github.com/jhpyle/docassemble/releases/tag/v1.6.0) - 2024-11-30
diff --git a/_docs/objects.md b/_docs/objects.md
index 74961920b..a6c9bf86c 100644
--- a/_docs/objects.md
+++ b/_docs/objects.md
@@ -1056,6 +1056,33 @@ client.getattr_fresh('total_income')
This should only be used on attributes that are defined by `code`
blocks.
+The
+`raise_undefined_attribute_error()` method raises the same type of
+exception that a `DAObject` raises when the interview logic requires a
+definition of an object attribute that is undefined.
+
+This can be useful when you are using the `@property` decorator to
+implement getter/setter methods.
+
+{% highlight python %}
+from docassemble.base.util import DAObject
+
+__all__ = ['MyObject']
+
+class MyObject(DAObject):
+
+ @property
+ def foo(self):
+ if not hasattr(self, '_foo'):
+ self.raise_undefined_attribute_error('foo')
+ return self._foo
+
+ @foo.setter
+ def foo(self, val):
+ self._foo = val
+
+{% endhighlight %}
+
### Language methods
The `possessive()` method is a