diff --git a/services/user_service/user_service.inc b/services/user_service/user_service.inc
index f2e69f9..b76e3f0 100644
--- a/services/user_service/user_service.inc
+++ b/services/user_service/user_service.inc
@@ -171,7 +171,24 @@ function user_service_save($account) {
       'pass2' => $account['pass'],
     );
     $form_state['values']['op'] = t('Create new account');
+
+    // reset to anonymous user
+    global $user;
+    $orig_user = $user;
+    $orig_state = session_save_session();
+    session_save_session( FALSE );
+    $user = user_load( array( 'uid' => 0 ) );
+    
+    // execute the register form
     $ret = drupal_execute('user_register', $form_state);
+    
+    // find and store the new user into the form_state
+    $newuser = user_load( array( 'name' => $form_state['values']['name'] ) );
+    $form_state['user'] = $newuser;
+
+    // revert back to the original user.
+    $user = $orig_user;
+    session_save_session( $orig_state );
   }
   else {
     // If a profile category was passed in, use it. Otherwise default
