diff --git a/restws.entity.inc b/restws.entity.inc
index c351b1a..1ff81e5 100644
--- a/restws.entity.inc
+++ b/restws.entity.inc
@@ -130,8 +130,16 @@ class RestWSEntityResourceController implements RestWSResourceControllerInterfac
   public function update($id, array $values) {
     $wrapper = $this->wrapper($id);
     try {
-      foreach ($values as $name => $value) {
-        $wrapper->{$name}->set($value);
+      $entity = $wrapper->value();
+      foreach ($values as $key => $value) {
+        if (isset($wrapper->$key)) {
+          $wrapper->$key->set($value);
+        }
+        else {
+          // Key isn't registered as a metadata property, so assign it
+          // directly to the entity.
+          $entity->$key = $value;
+        }
       }
     }
     catch (EntityMetadataWrapperException $e) {
