diff -Naur stormtaskOrig/stormtask.admin.inc stormtask/stormtask.admin.inc
--- stormtaskOrig/stormtask.admin.inc	2009-04-16 21:15:29.000000000 +0200
+++ stormtask/stormtask.admin.inc	2009-07-08 17:35:15.000000000 +0200
@@ -337,6 +407,14 @@
       'field' => 'sta.taskpriority',
     ),
     array(
+      'data' => t('Person'),
+      'field' => 'sta.person_nid',
+    ),
+//     array(
+//       'data' => t('Person Organization'),
+//       'field' => 'sta.person_organization_nid',
+//     ),
+    array(
       'data' => storm_icon_add_node($i, $_GET),
       'class' => 'storm_list_operations',
     ),
@@ -354,6 +432,17 @@
     $where[] = 'sta.project_nid=%d';
     $args[] = $_SESSION['stormtask_list_filter']['project_nid'];
   }
+
+  if ($_SESSION['stormtask_list_filter']['person_organization_nid']) {
+    $where[] = 'sta.person_organization_nid=%d';
+    $args[] = $_SESSION['stormtask_list_filter']['person_organization_nid'];
+  }
+
+  if ($_SESSION['stormtask_list_filter']['person_nid']) {
+    $where[] = 'sta.person_nid=%d';
+    $args[] = $_SESSION['stormtask_list_filter']['person_nid'];
+  }
+
   if ($_SESSION['stormtask_list_filter']['taskcategory'] && $_SESSION['stormtask_list_filter']['taskcategory'] != '-') {
     $category = split(',', $_SESSION['stormtask_list_filter']['taskcategory']);
     $v = array();
@@ -469,6 +558,9 @@
   $organization_nid = $_SESSION['stormtask_list_filter']['organization_nid'];
   $project_nid = $_SESSION['stormtask_list_filter']['project_nid'];
 
+  $person_organization_nid = $_SESSION['stormtask_list_filter']['person_organization_nid'];
+  $person_nid = $_SESSION['stormtask_list_filter']['person_nid'];
+
   $datebeginfrom = $_SESSION['stormtask_list_filter']['datebeginfrom'];
   $datebeginto = $_SESSION['stormtask_list_filter']['datebeginto'];
   $dateendfrom = $_SESSION['stormtask_list_filter']['dateendfrom'];
@@ -599,19 +691,51 @@
     '#theme' => 'storm_form_group',
   );
 
-  $form['filter']['group5']['submit'] = array(
+  $form['filter']['group5']['person_organization_nid'] = array(
+    '#type' => 'select',
+    '#title' => t('Person organization'),
+    '#default_value' => $person_organization_nid,
+    '#options' => $organizations,
+//     '#attributes' => array('onchange' => "stormproject_organization_projects(this, 'edit-project-nid', true, 'All')"),
+  );
+
+
+  $s = "SELECT n.nid, n.title FROM {node} AS n INNER JOIN {stormperson} AS sor ON sor.vid=n.vid
+  WHERE n.status=1 AND n.type='stormperson' ORDER BY n.title";
+  $s = stormorganization_access_sql($s);
+  $s = db_rewrite_sql($s);
+  $r = db_query($s);
+  $persons = array();
+  while ($person = db_fetch_object($r)) {
+    $persons[$person->nid] = $person->title;
+  }
+  $persons = array(0 => t('All')) + $persons;
+
+  $form['filter']['group5']['person_nid'] = array(
+    '#type' => 'select',
+    '#title' => t('Person'),
+    '#default_value' => $person_nid,
+    '#options' => $persons,
+  );
+
+  $form['filter']['group6'] = array(
+    '#type' => 'markup',
+    '#theme' => 'storm_form_group',
+  );
+
+  $form['filter']['group6']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Filter'),
     '#submit' => array('stormtask_list_filter_filter'),
   );
 
-  $form['filter']['group5']['reset'] = array(
+  $form['filter']['group6']['reset'] = array(
     '#type' => 'submit',
     '#value' => t('Reset'),
     '#submit' => array('stormtask_list_filter_reset'),
   );
 
-  $form['filter']['group5']['itemsperpage'] = array(
+  $form['filter']['group6']['itemsperpage'] = array(
     '#type' => 'textfield',
     '#title' => t('Items'),
     '#size' => 10,
@@ -634,9 +758,11 @@
   $_SESSION['stormtask_list_filter']['dateendfrom'] = $form_state['values']['dateendfrom'];
   $_SESSION['stormtask_list_filter']['dateendto'] = $form_state['values']['dateendto'];
   $_SESSION['stormtask_list_filter']['itemsperpage'] = $form_state['values']['itemsperpage'];
+
+  $_SESSION['stormtask_list_filter']['person_nid'] = $form_state['values']['person_nid'];
+  $_SESSION['stormtask_list_filter']['person_organization_nid'] = $form_state['values']['person_organization_nid'];
 }
 
 function stormtask_list_filter_reset($form, &$form_state) {
   unset($_SESSION['stormtask_list_filter']);
-}
-
+}
\ No newline at end of file

diff -Naur stormtaskOrig/stormtask.module stormtask/stormtask.module
--- stormtaskOrig/stormtask.module	2009-07-07 01:04:15.000000000 +0200
+++ stormtask/stormtask.module	2009-07-08 17:38:07.000000000 +0200
@@ -451,6 +522,53 @@
     '#default_value' => $node->currency,
     '#options' => $currency_list['values'],
   );
+// You must execute this two sql commands
+// ALTER TABLE stormtask ADD person_organization INT;
+// ALTER TABLE stormtask ADD person INT;
+
+  $s_org = "SELECT n.nid, n.title FROM {stormorganization} so INNER JOIN {node} n 
+              ON so.nid=n.nid WHERE n.status=1 AND (so.isactive=1 OR n.nid=%d) AND n.type='stormorganization' ORDER BY n.title";
+
+  $s_org = stormorganization_access_sql($s_org);
+  $s_org = db_rewrite_sql($s_org);
+  $r = db_query($s_org, $node->organization_nid);
+  $organizations = array();
+  while ($organization = db_fetch_object($r)) {
+    $organizations[$organization->nid] = $organization->title;
+    if (!$node->organization_nid) $node->organization_nid = $organization->nid;
+    if (!$node->person_organization_nid) $node->person_organization_nid = $organization->nid;
+  }
+
+
+  $form['group6']['person_organization_nid'] = array(
+    '#type' => 'select',
+    '#title' => t('Person organization'),
+    '#default_value' => $node->person_organization_nid,
+    '#options' => $organizations,
+    '#required' => true,
+    '#attributes' => array('onchange' => "stormperson_organization_people(this, 'edit-person-nid', true, '-')"),
+  );
+
+  $s = "SELECT n.nid, n.title FROM {stormperson} spe INNER JOIN {node} n 
+              ON spe.vid=n.vid WHERE n.status=1 AND spe.organization_nid=%d AND n.type='stormperson' ORDER BY n.title";
+
+  $s = stormperson_access_sql($s);
+  $s = db_rewrite_sql($s);
+  $r = db_query($s, $node->person_organization_nid);
+  $people = array();
+  while ($person = db_fetch_object($r)) {
+    $people[$person->nid] = $person->title;
+  }
+  $people = array(0 => '-') + $people;
+
+  $form['group6']['person_nid'] = array(
+    '#type' => 'select',
+    '#title' => t('Person'),
+    '#default_value' => $node->person_nid,
+    '#options' => $people,
+    '#required' => true,
+    '#process' => array('storm_dependent_select_process'),
+  );
 
   if ($type->has_body) {
     $form['body_filter']['#weight'] = -44;
@@ -479,7 +597,7 @@
 
 
 function stormtask_form_alter(&$form, $form_state, $form_id) {
-  if (module_exists('date_api')) {
+  if (module_exists('date_api') && module_exists('date_popup')) {
     if ('stormtask_node_form' == $form_id) {
 	$node = $form['#node'];
 	$form['group4']['datebegin'] = array(
@@ -507,15 +625,15 @@
     (vid, nid, stepno, taskcategory, taskstatus, taskpriority,
     organization_nid, organization_title,
     project_nid, project_title, parent_nid, weight,
-    datebegin, dateend, durationunit, duration, pricemode, price, currency)
+    datebegin, dateend, durationunit, duration, pricemode, price, currency, person_organization_nid, person_nid)
     VALUES
     (%d, %d, '%s', '%s', '%s', '%s',
     %d, '%s',
-    %d, '%s', %d, %d, %d, %d, '%s', %f, '%s', %f, '%s')",
+    %d, '%s', %d, %d, %d, %d, '%s', %f, '%s', %f, '%s', %d, %d)",
     $node->vid, $node->nid, $node->stepno, $node->taskcategory, $node->taskstatus, $node->taskpriority,
     $node->organization_nid, $node->organization_title, $node->project_nid, $node->project_title,
     $node->parent_nid, $node->weight, $node->datebegin, $node->dateend, $node->durationunit, $node->duration,
-    $node->pricemode, $node->price, $node->currency);
+    $node->pricemode, $node->price, $node->currency, $node->person_organization_nid, $node->person_nid);
 }
 
 function stormtask_update($node) {
@@ -530,14 +648,14 @@
       organization_nid=%d, organization_title='%s',
       project_nid=%d, project_title='%s',
       parent_nid=%d, weight=%d, datebegin=%d, dateend=%d, durationunit='%s', duration=%f,
-      pricemode='%s', price=%f, currency='%s' 
+      pricemode='%s', price=%f, currency='%s' , person_organization_nid = %d, person_nid=%d
       WHERE vid = %d",
       $node->stepno, $node->taskcategory, $node->taskstatus, $node->taskpriority,
       $node->organization_nid, $node->organization_title,
       $node->project_nid, $node->project_title,
       $node->parent_nid,
       $node->weight, $node->datebegin, $node->dateend, $node->durationunit, $node->duration, 
-      $node->pricemode, $node->price, $node->currency, $node->vid);
+      $node->pricemode, $node->price, $node->currency, $node->person_organization_nid, $node->person_nid, $node->vid);
     if (($node->title != $node->title_old) || ($node->stepno != $node->stepno_old)) {
       module_invoke_all('stormtask_change', $node->nid, $node->stepno, $node->title);
     }
\ No newline at end of file
diff -Naur stormtaskOrig/stormtask.theme.inc stormtask/stormtask.theme.inc
--- stormtaskOrig/stormtask.theme.inc	2009-06-21 23:08:45.000000000 +0200
+++ stormtask/stormtask.theme.inc	2009-07-08 17:05:22.000000000 +0200
@@ -54,6 +54,8 @@
     $n->uid = $task->uid;
     $n->organization_nid = $task->organization_nid;
     $n->type = 'stormtask';
+    $node_person = node_load($task->person_nid);
+
 
     $rows[] = array(
       l($task->organization_title, 'node/'. $task->organization_nid),
@@ -62,6 +64,8 @@
       storm_icon('category_'. $task->taskcategory, $task->taskcategory),
       storm_icon('status_'. $task->taskstatus, $task->taskstatus),
       storm_icon('priority_'. $task->taskpriority, $task->taskpriority),
+      l($node_person->fullname, 'node/'. $task->person_nid),
+//       l($task->person_organization_nid, 'node/'. $task->person_organization_nid),
       array(
         'data' => storm_icon_edit_node($n, $_GET) .'&nbsp;'. storm_icon_delete_node($n, $_GET),
         'class' => 'storm_list_operations',
