diff -ur feedapi.orig/feedapi.module feedapi/feedapi.module
--- feedapi.orig/feedapi.module	2008-12-05 06:35:20.000000000 +0900
+++ feedapi/feedapi.module	2008-12-21 22:22:37.000000000 +0900
@@ -170,19 +170,62 @@
  * Implementation of hook_block().
  */
 function feedapi_block($op = 'list', $delta = 0) {
+  global $user;
   $blocks = array();
+  $pre = array("create" => 'c-', "list" => 'l-');
+  $presize = 2;
+
+  // get path whether it is q=user/* page
+  $disp_user = 0;
+  $edit_user = 0;
+  if (arg(0) == 'user' && is_numeric(arg(1))) {
+    $disp_user = arg(1);
+    if (arg(2) == 'edit') {
+      $edit_user = 1;
+    }
+  } else {
+    $disp_user = 0;
+  }
+
   $names = feedapi_get_types();
   switch ($op) {
     case 'list':
       foreach ($names as $type => $name) {
-        $blocks[$type]['info'] = t('FeedAPI: Quick create !preset', array('!preset' => $name));
-        $blocks[$type]['cache'] = BLOCK_CACHE_GLOBAL;
+        $blocks[$pre["create"].$type]['info'] = t('FeedAPI: Quick create !preset', array('!preset' => $name));
+        $blocks[$pre["create"].$type]['cache'] = BLOCK_CACHE_GLOBAL;
+      
+	$blocks[$pre["list"].$type]['info'] = t('FeedAPI: list !preset', array('!preset' => $name));
+	$blocks[$pre["list"].$type]['cache'] = BLOCK_CACHE_PER_USER;
       }
       break;
     case 'view':
-      if (node_access('create', $delta)) {
-        $blocks['subject'] = t('Create !preset', array('!preset' => $names[$delta]));
-        $blocks['content'] = drupal_get_form('feedapi_simplified_form', $delta);
+      $content_type = substr($delta,$presize);
+      $u_uid = $disp_user ? $disp_user: $user->uid;
+      if ((strncmp($delta, $pre["create"], $presize) == 0) 
+      	  && ($disp_user == 0 || ($disp_user == $user->uid && $edit_user))  
+          && node_access('create', $content_type)) {
+          $blocks['subject'] = t('Create !preset', array('!preset' => $names[$content_type]));
+          $blocks['content'] = drupal_get_form('feedapi_simplified_form', $content_type);
+      } else
+      if ((strncmp($delta, $pre["list"], $presize) == 0) 
+		&& node_access('view', $content_type)) {
+	$items = array();
+        $sql = "SELECT n.nid, n.title, n.created, GREATEST(n.changed) AS last_edit
+		FROM {node} n WHERE n.type = '$content_type' 
+		AND n.status = 1  AND n.uid = $u_uid
+		ORDER BY n.created ASC";
+	$result = db_query_range(db_rewrite_sql($sql), 0, 10);
+	while ($node = db_fetch_object($result)) {
+	  $items[] = array(l($node->title, "node/$node->nid"), 
+		t('!time ago', array('!time' => format_interval(time() - $node->last_edit)))
+		);
+        }
+        if (!$items) {
+          $items[] = array(array('data' => t('No posts available.'), 'colspan' => '2'));
+        }
+        $header = array(t('Post'),t('Last updated'));
+        $blocks['content'] = theme('table',$header, $items);
+        $blocks['subject'] = t('List !preset', array('!preset' => $names[$content_type]));
       }
       break;
   }
