diff --git a/nodeblock.module b/nodeblock.module
index d67a79c..055d08e 100755
--- a/nodeblock.module
+++ b/nodeblock.module
@@ -129,7 +129,7 @@ function nodeblock_form_alter(&$form, &$form_state, $form_id) {
           '#type' => 'radios',
           '#title' => t('Available as block'),
           '#default_value' => nodeblock_type_enabled($form['#node_type']),
-          '#options' => array(0 => t('Disabled'), 1 => t('Enabled')),
+          '#options' => array(0 => t('Disabled'), 1 => t('Enabled'), 2 => t('Per node setting')),
           '#description' => t('Should these nodes be made available as blocks?'),
         ),
         'nodeblock_view_mode' => array(
@@ -159,13 +159,31 @@ function nodeblock_form_alter(&$form, &$form_state, $form_id) {
   elseif (!empty($form['#node_edit_form'])) {    
     $node = $form['#node'];
     // Add translation fallback field for nodeblock and translation enabled source nodes only
-    if (nodeblock_type_enabled($node->type) && module_exists('translation') && translation_supported_type($node->type) && empty($node->translation_source) && (empty($node->tnid) || $node->tnid == 0 || $node->tnid == $node->nid)) {
-      $form['nodeblock'] = array(
+    //if (nodeblock_type_enabled($node->type) && module_exists('translation') && translation_supported_type($node->type) && empty($node->translation_source) && (empty($node->tnid) || $node->tnid == 0 || $node->tnid == $node->nid)) {
+      $form_nodeblock = array(
         '#type' => 'fieldset',
-        '#title' => t('Block translation options'),
+        '#title' => t('Node block'),
+        '#collapsible' => TRUE,
         '#tree' => TRUE,
       );
+      if(variable_get('nodeblock_'. $node->type, 0) == 2){
+        $nodeblock_nodes = variable_get('nodeblock_nodes', array());
+        if(!isset($form['nodeblock'])) {
+            $form['nodeblock'] = $form_nodeblock;
+        }
+        $form['nodeblock']['settings'] = array(
+            '#type' => 'checkbox',
+            '#title' => t('Available as block'),
+        );
+      if (isset($node->nid)){
+          $form['nodeblock']['settings']['#default_value'] = $nodeblock_nodes[$node->nid];
+      }
+      $form['#submit'][] = 'nodeblock_node_submit';
+
       $nodeblock_translation_fallback = isset($node->nid) ? variable_get('nodeblock_translation_fallback_'.$node->nid, '0') : 0;
+      if(!$form['nodeblock']) {
+          $form['nodeblock'] = $form_nodeblock;
+      }
       $form['nodeblock']['translation_fallback'] = array(
         '#type' => 'checkbox',
         '#title' => t('Enable translation fallback?'),
@@ -176,6 +194,15 @@ function nodeblock_form_alter(&$form, &$form_state, $form_id) {
   }
 }
 
+function nodeblock_node_submit($form, &$form_state) {
+	if (isset($form_state['values']['nodeblock']['settings'])) {
+		$nodeblock_nodes = variable_get('nodeblock_nodes', array());
+		$nodeblock_nodes[$form_state['values']['nid']] = $form_state['values']['nodeblock']['settings'];
+		variable_set('nodeblock_nodes', $nodeblock_nodes);
+		_block_rehash();
+	}
+}
+
 
 /**
  * hook_node_delete
@@ -233,11 +260,12 @@ function _nodeblock_insert_update($node) {
  * hook_block_info
  */
 function nodeblock_block_info() {
+  $nodeblock_nodes = variable_get('nodeblock_nodes', array());
   $blocks = array();
   $blocks2 = array();
   $types = node_type_get_types();
   foreach ($types as $type) {
-    if (nodeblock_type_enabled($type)) {
+    if (variable_get('nodeblock_'. $type->type, 0) == 1) {
       // Fetch all nodes of this type, excluding translations.
       $request = db_select('node', 'n')
         ->fields('n', array('nid', 'title'))
@@ -250,6 +278,30 @@ function nodeblock_block_info() {
       }
     }
   }
+  //extra functionality
+  if (!empty($nodeblock_nodes)) {
+    	$nodes = array();
+    	foreach ($nodeblock_nodes as $nid => $type) {
+    		if ($type) {
+    			$nodes[] = (int)$nid;
+    		}
+    	}
+    	if ($nodes) {
+            $request = db_select('node', 'n')
+            ->fields('n', array('nid', 'title', 'type'))
+            ->condition('n.status', 1)
+            ->condition('n.nid', $nodes ,'IN');
+            $result = $request->execute();
+    	}
+      foreach ($result as $node) {
+        if (variable_get('nodeblock_'. $node->type, 0) == 2) {
+        	$blocks[$node->nid] = array('info' => $node->title .' (nodeblock)');
+        }
+      }
+    }
+  //end extra functionality
+
+
   return $blocks;
 }
 
