Index: apachesolr/apachesolr.admin.inc
===================================================================
--- apachesolr/apachesolr.admin.inc	(revision 290)
+++ apachesolr/apachesolr.admin.inc	(revision 302)
@@ -558,6 +558,30 @@
     '#default_value' => $block['mlt_maxqt'],
   );
 
+  $form['restrictions'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Restrictions configuration'),
+    '#weight' => '1',
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+  );
+
+  $form['restrictions']['mlt_res_criteria'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Criteria'),
+    '#description' => t('The additional criteria which all entries returned by this block must meet.  Ex.  title:strategy type:article'),
+    '#required' => FALSE,
+    '#default_value' => $block['mlt_res_criteria'],
+    '#weight' => '-2',
+  );
+
+  //field:[* TO 100]
+  //createdate:[1995-12-31T23:59:59.999Z TO 2007-03-06T00:00:00Z]
+  //-inStock:false   -returns where 'inStock' is not false
+  //HDTV^3 -boost the term being searched for
+  //+title:strategies -title must contain strategies
+  //-title:strategies -title must NOT contain strategies
+
   return $form;
 }
 
@@ -577,6 +601,7 @@
     'mlt_minwl' => '3',
     'mlt_maxwl' => '15',
     'mlt_maxqt' => '20',
+    'mlt_res_criteria' => '',
   );
 }
 
@@ -624,6 +649,7 @@
   $blocks[$delta] = array_intersect_key($block_settings, $defaults) + $defaults;
   // Eliminate non-selected fields.
   $blocks[$delta]['mlt_fl'] = array_filter($blocks[$delta]['mlt_fl']);
+
   variable_set('apachesolr_mlt_blocks', $blocks);
 }
 
@@ -649,4 +675,3 @@
   drupal_set_message(t('The block has been deleted.'));
   $form_state['redirect'] = 'admin/build/block';
 }
-
Index: apachesolr/apachesolr.module
===================================================================
--- apachesolr/apachesolr.module	(revision 290)
+++ apachesolr/apachesolr.module	(revision 302)
@@ -1275,7 +1275,6 @@
  * @return An array of response documents, or NULL
  */
 function apachesolr_mlt_suggestions($settings, $id) {
-
   try {
     $solr = apachesolr_get_solr();
     $fields = array(
@@ -1299,8 +1298,23 @@
         $params[$name] = $settings[$form_key];
       }
     }
+
+    //$query = apachesolr_drupal_query('id:' . $id);
     $query = apachesolr_drupal_query('id:' . $id);
 
+
+    //$sub_query = apachesolr_drupal_query('-title:strategies');
+
+    //apply any additional block specifc filters to the query
+    foreach (explode(' ', $settings['mlt_res_criteria']) as $idx => $criteria) {
+      list($field, $value) = explode(':', $criteria);
+      if ($field && $value) {
+        $query->add_filter($field, $value);
+      }
+    }
+    //$query->add_subquery($sub_query);
+
+
     // This hook allows modules to modify the query and params objects.
     apachesolr_modify_query($query, $params, 'apachesolr_mlt');
     if (empty($query)) {
@@ -1588,4 +1602,3 @@
    */
   function set_available_sort($field, $sort);
 }
-
