diff --git a/vkxp.forms.inc b/vkxp.forms.inc
index 1451b6f..48d5069 100644
--- a/vkxp.forms.inc
+++ b/vkxp.forms.inc
@@ -42,6 +42,20 @@ function _vkxp_process_node_settings_form(&$form) {
     '#description' => t('Check this if you want checkbox "Post this node to VK" in node forms was checked by default.')
   );
 
+  $form['vkxp']['vkxp_node_enabled_prevent_double_post'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Uncheck previous checkbox if current node has already posted to VK'),
+    '#description' => t('Prevent double posting for nodes that already sent to VK.'),
+    '#default_value' => variable_get('vkxp_node_enabled_prevent_double_post_' . $node_type),
+    '#states' => array(
+      'visible' => array(
+        ':input[name="vkxp_node_enabled_default"]' => array(
+          'checked' => TRUE
+        ),
+      )
+    ),
+  );
+
   // Get information about node fields.
   $fields_info = field_info_instances('node', $node_type);
 
@@ -161,7 +175,6 @@ function _vkxp_process_node_settings_form(&$form) {
  *   Node add/edit form.
  */
 function _vkxp_process_node_form(&$form) {
-
   $form['vkxp'] = array(
     '#type'   => 'fieldset',
     '#title'  => t('VKontakte CrossPoster'),
@@ -169,10 +182,24 @@ function _vkxp_process_node_form(&$form) {
     '#weight' => -10,
   );
 
+  $vkxp_node_enabled_default_checkbox = variable_get('vkxp_node_enabled_default_' . $form['#node']->type);
+  $vkxp_node_prevent_doublepost = variable_get('vkxp_node_enabled_prevent_double_post_' . $form['#node']->type);
+  // If default checkbox for node is enabled but prevent variable is false and this post
+  // has already pushed to VK, making checkbox unchecked.
+  if ($vkxp_node_enabled_default_checkbox) {
+    if ($vkxp_node_prevent_doublepost && empty($form['#node']->vkxp_sent)) {
+      $post_this_node = FALSE;
+    } else {
+      $post_this_node = TRUE;
+    }
+  } else {
+    $post_this_node = FALSE;
+  }
+
   $form['vkxp']['vkxp_post_this_node'] = array(
     '#type'          => 'checkbox',
     '#title'         => t('Post this node to VK'),
-    '#default_value' => variable_get('vkxp_node_enabled_default_' . $form['#node']->type),
+    '#default_value' => $post_this_node,
     '#description'   => t('After you submit this node it will be posted to VK.'),
   );
 
diff --git a/vkxp.install b/vkxp.install
index 56738de..155978e 100644
--- a/vkxp.install
+++ b/vkxp.install
@@ -37,6 +37,13 @@ function vkxp_requirements($phase) {
 }
 
 /**
+ * Implements hook_install().
+ */
+function vkxp_install() {
+  vkxp_update_7213();
+}
+
+/**
  * Implements hook_uninstall().
  */
 function vkxp_uninstall() {
@@ -48,9 +55,25 @@ function vkxp_uninstall() {
 
   if (!empty($vars)) {
     foreach ($vars as $var) {
-      variable_delete($var);
+      variable_del($var);
     }
   }
+
+  // Delete vkxp send status property.
+  db_drop_field('node', 'vkxp_sent');
+}
+
+/**
+ * Implements hook_schema_alter().
+ */
+function vkxp_schema_alter(&$schema) {
+  $schema['node']['fields']['vkxp_sent'] = array(
+    'definition' => 'Was sent to vk',
+    'type' => 'int',
+    'size' => 'tiny',
+    'not null' => TRUE,
+    'default' => 0,
+  );
 }
 
 /**
@@ -65,3 +88,20 @@ function vkxp_update_7212() {
 
   variable_del('vkxp_group_id');
 }
+
+/**
+ * Add new status property to node.
+ */
+function vkxp_update_7213() {
+  db_add_field(
+    'node',
+    'vkxp_sent',
+    array(
+      'definition' => 'Was sent to vk',
+      'type' => 'int',
+      'size' => 'tiny',
+      'not null' => TRUE,
+      'default' => 0,
+    )
+  );
+}
diff --git a/vkxp.module b/vkxp.module
index e25619d..9b791cf 100644
--- a/vkxp.module
+++ b/vkxp.module
@@ -113,7 +113,6 @@ function vkxp_form_node_form_alter(&$form, &$form_state) {
   if (empty($form['#node']->type)) {
     return;
   }
-
   // Check node type and user access to see whether we should process a node form.
   $type_enabled = variable_get('vkxp_node_enabled_' . $form['#node']->type);
   $user_access  = user_access('post to vkontakte');
@@ -142,6 +141,21 @@ function vkxp_node_update($node) {
 }
 
 /**
+ * Implements hook_node_presave().
+ */
+function vkxp_node_presave($node) {
+  // Get all flags to see if node could be crossposted.
+  $vkxp_enabled = variable_get('vkxp_node_enabled_' . $node->type);
+  $access_token = variable_get('vkxp_access_token');
+  $user_access = user_access('post to vkontakte');
+  $post_node = isset($node->vkxp_post_this_node) ?  $node->vkxp_post_this_node : FALSE;
+
+  if ($vkxp_enabled && $access_token && $user_access && $post_node) {
+    $node->vkxp_sent = TRUE;
+  }
+}
+
+/**
  * Implements hook_node_type_delete().
  */
 function vkxp_node_type_delete($info) {
@@ -156,7 +170,7 @@ function vkxp_node_type_delete($info) {
     'vkxp_node_enabled_default_',
   );
   foreach ($vars as $var) {
-    variable_delete($var . $info->type);
+    variable_del($var . $info->type);
   }
 }
 
@@ -174,7 +188,7 @@ function _vkxp_process_node($node) {
   $user_access  = user_access('post to vkontakte');
   $post_node    = isset($node->vkxp_post_this_node) ?  $node->vkxp_post_this_node : FALSE;
 
-  // Check requiered data to post.
+  // Check required data to post.
   if ($vkxp_enabled && $access_token && $user_access && $post_node) {
 
     // Get node data that will be crossposted.
