diff --git a/resources/node_resource.inc b/resources/node_resource.inc
index 928e09d..0a8f6a0 100644
--- a/resources/node_resource.inc
+++ b/resources/node_resource.inc
@@ -252,7 +252,8 @@ function _node_resource_create($node) {
   $form_state = array();
   $form_state['values'] = $node;
   $form_state['values']['op'] = variable_get('services_node_save_button_' . $node_type . '_resource_create', t('Save'));
-
+  // Rebuild the form so subsequent calls via REST don't fail.
+  $form_state['rebuild'] = TRUE;
   drupal_form_submit($node_type . '_node_form', $form_state, (object)$node);
 
   if ($errors = form_get_errors()) {
@@ -342,6 +343,8 @@ function _node_resource_update($nid, $node) {
   $form_state['values'] = $node;
   $form_state['values']['op'] = variable_get('services_node_save_button_' . $node_type . '_resource_update', t('Save'));
   $form_state['node'] = $old_node;
+  // Rebuild the form so subsequent calls via REST don't fail.
+  $form_state['rebuild'] = TRUE;
   drupal_form_submit($node_type . '_node_form', $form_state, $old_node);
 
   if ($errors = form_get_errors()) {
