diff --git a/entityreference_view_widget.module b/entityreference_view_widget.module
index 95f7889..88e1384 100755
--- a/entityreference_view_widget.module
+++ b/entityreference_view_widget.module
@@ -357,14 +357,19 @@ function entityreference_view_widget_ajax($form, $form_state) {
     $selected_amount = count($entity_ids);
 
     // If the user selected too many items...
-    if ($widget_settings['cardinality'] > 0 && $widget_settings['cardinality'] < $selected_amount) {
+    if ($widget_settings['cardinality'] > 0 && $widget_settings['cardinality'] < $selected_amount && $widget_settings['cardinality'] != 1) {
       $error_message = t('Please select no more than @cardinality values', array('@cardinality' => $widget_settings['cardinality']));
       $commands[] = ajax_command_prepend('#modal-content', '<div class="messages error">' . $error_message  . '</div>');
     }
     else {
       $rows['#theme'] = 'entityreference_view_widget_rows';
       $rows['#widget_settings'] = $widget_settings;
-      $rows += entityreference_view_widget_rows($entity_ids, $widget_settings);
+	  if($widget_settings['cardinality'] == 1) {
+        //single selection, replace the old value with newly selected value, ASSERT that the array size of $entity_ids is 1				
+        array_shift($entity_ids);
+	  }
+	  $rows += entityreference_view_widget_rows($entity_ids, $widget_settings);	  
+
       // Replace the whole table with updated values.
       $commands[] = ajax_command_replace('#' . $widget_settings['table_id'] . ' > tbody', '<tbody>' . render($rows) . '</tbody>');
       // Make the table rows draggables.
