diff --git a/restws.entity.inc b/restws.entity.inc
index 4c18ec6..50edbd3 100644
--- a/restws.entity.inc
+++ b/restws.entity.inc
@@ -111,6 +111,19 @@ class RestWSEntityResourceController implements RestWSResourceControllerInterfac
   }
 
   public function create(array $values) {
+    // Make sure that only known properties come in.
+    $bundle_key = $this->entityInfo['entity keys']['bundle'];
+    if (isset($values[$bundle_key])) {
+      $wrapper = entity_metadata_wrapper($this->entityType, NULL, array('bundle' => $values[$bundle_key]));
+    }
+    else {
+      $wrapper = entity_metadata_wrapper($this->entityType, NULL);
+    }
+    $properties = $wrapper->getPropertyInfo();
+    $diff = array_diff_key($values, $properties);
+    if (!empty($diff)) {
+      throw new RestWSException('Unknown data properties: ' . implode(' ', array_keys($diff)) . '.', 406);
+    }
     try {
       $wrapper = entity_property_values_create_entity($this->entityType, $values);
     }
diff --git a/restws.test b/restws.test
index 6b14430..8f15942 100644
--- a/restws.test
+++ b/restws.test
@@ -137,7 +137,7 @@ class RestWSTestCase extends DrupalWebTestCase {
     );
     $json = drupal_json_encode($new_node);
     $result = $this->httpRequest('node', 'PUT', $account, $json);
-    $this->assertEqual($result, "406 Not Acceptable: Unknown data property $property_name.", 'Response body is correct');
+    $this->assertEqual($result, "406 Not Acceptable: Unknown data properties: $property_name.", 'Response body is correct');
     $this->assertResponse('406', 'HTTP response code is correct.');
   }
 
