--- C:\Users\Ramesh\AppData\Local\Temp\block.inc-rev2158.svn000.tmp.inc	2010-07-05 14:45:13.000000000 +-0100
+++ C:\Users\Ramesh\AppData\Local\Temp\block.inc-rev2612.svn000.tmp.inc	2010-07-05 14:45:14.000000000 +-0100
@@ -16,53 +16,56 @@
         'block_box_delete' => t('Block: Delete block')
       );
     break;
 
     // Prepare data for processing
     case 'prepare':
-      if ($data['id']) {
+      if (isset($data['id'])) {
         $split = strpos($data['id'], '-');
         $data['module'] = substr($data['id'], 0, $split);
         $data['delta'] = substr($data['id'], $split + 1);
-
         unset($data['id']);
       }
       // Block description for custom blocks is always unique so we can try to get delta by looking up info field
       elseif (!empty($data['info'])) {
         $delta = db_result(db_query('SELECT delta FROM {blocks} bl INNER JOIN {boxes} bo ON bl.delta = bo.bid AND bl.module = "block" WHERE info = "%s"', $data['info']));
         if (!empty($delta)) {
           $data['delta'] = $delta;
           $data['module'] = 'block';
         }
       }
 
-      if ($data['description']) {
+      if (!empty($data['description'])) {
         $data['info'] = $data['description'];
         unset($data['description']);
       }
 
-      if ($data['delete'] && empty($data['info']) && $data['module'] == 'block') {
+      if (!empty($data['delete']) && empty($data['info']) && $data['module'] == 'block') {
         $data['info'] = db_result(db_query('SELECT info FROM {boxes} WHERE bid = "%d"', $data['delta']));
       }
 
+      
       if (!empty($data['pages']) && is_array($data['pages'])) {
         $pages = implode("\r\n", $data['pages']);
         $data['pages'] = str_replace('[front]', '<front>', $pages);
       }
 
-      if (!($data['module'] && $data['delta']) && $data['info']) {
+      // ##! Patch to allow for modules other than 'block'
+      //    use isset() rather than empty() for $data['delta'] 
+      //    since $data['delta'] can be 0.
+      if ( empty($data['module']) || !isset($data['delta']) ) {
         $data['module'] = 'block';
       }
     break;
 
     // Pre validate actions
     case 'pre-validate':
       if (!(isset($data['module']) && isset($data['delta'])) && !$data['info']) {
         return t('Missing required &lt;module&gt;, &lt;delta&gt; tags. Possibly malformed &lt;id&gt; tag could be the problem too. If creating a new block, tag &lt;info&gt; is required.');
       }
-      else if ($data['delete'] && $data['module'] != 'block') {
+      else if (!empty($data['delete']) && $data['module'] != 'block') {
         return t('Unable to delete non-block module blocks');
       }
     break;
 
     // Return the form_id('s) for each action
     case 'form_id':
