diff --git a/entityreference_prepopulate.module b/entityreference_prepopulate.module
index 9c06140..1a23492 100644
--- a/entityreference_prepopulate.module
+++ b/entityreference_prepopulate.module
@@ -400,9 +400,10 @@ function entityreference_prepopulate_get_values_from_og_context($field, $instanc
  * @param $entity_id
  *   The entity ID of the referenced entity.
  * @param $destination
- *   Optional; The destination after a node is created. Defaults to the
- *   destination passed in the URL if exists, otherwise back to the current
- *   page.
+ *   Optional; The destination after a node is created.
+ *   If NULL, default to drupal_get_destination().
+ *   If a valid path, use the path for destination.
+ *   If FALSE, do not append a destination.
  * @param $types
  *   Optional; An array of type names. Restrict the created links to the given
  *   types.
@@ -450,9 +451,21 @@ function entityreference_prepopulate_create_node_links($entity_type, $entity_id,
 
   // Build links.
   $options = array(
-    'query' => array($field_name => $entity_id) + drupal_get_destination(),
+    'query' => array($field_name => $entity_id),
   );
 
+  // Check the value of the $destination parameter before appending destination.
+  // If it is FALSE, skip.
+  if ($destination !== FALSE) {
+    if (!empty($destination) && drupal_valid_path($destination)) {
+      // Use destination from parameter.
+      $options['query']['destination'] = $destination;
+    }
+    else {
+      $options['query'][] = drupal_get_destination();
+    }
+  }
+
   $items = array();
   foreach ($names as $type => $name) {
     $items[] = array('data' => l($name, 'node/add/' . str_replace('_', '-', $type), $options));
