diff --git ahah_example/ahah_example.module ahah_example/ahah_example.module
index 0b35f0b..2e86585 100644
--- ahah_example/ahah_example.module
+++ ahah_example/ahah_example.module
@@ -8,6 +8,16 @@
  *
 */
 
+/**
+ * @defgroup ahah_example Example: AHAH
+ * @ingroup examples
+ * @{
+ * AHAH examples. (drupal 6)
+ *
+ * This example is part of the Examples for Developers Project which you can download
+ * and experiment with here: http://drupal.org/project/examples
+ */
+
 $path = drupal_get_path('module','ahah_example');
 
 /**
@@ -136,3 +146,7 @@ function ahah_example_callback_helper() {
 function ahah_example_init() {
   drupal_add_css(drupal_get_path('module', 'ahah_example') . '/ahah_example.css');
 }
+
+/**
+ * @} End of "defgroup ahah_example".
+ */
\ No newline at end of file
diff --git batch_example/batch_example.module batch_example/batch_example.module
index cd12609..067d077 100644
--- batch_example/batch_example.module
+++ batch_example/batch_example.module
@@ -12,19 +12,27 @@
  */
 
 /**
+ * @defgroup batch_example Example: Batch API
+ * @ingroup examples
+ * @{
+ * Examples using batch API. (drupal 6)
+ *
  * 2 'harmless' batches are defined :
  * batch 1 : Load 100 times the node with the lowest nid
  * batch 2 : Load all nodes, 20 times
  *           (uses a progressive op : load nodes by groups of 5)
  *
  * The module defines the following pages :
- * /batch_example/example_1 :
+ * - /batch_example/example_1 :
  *   Simple form, lets you pick the batch that should be executed
- * /batch_example/example_2 :
+ * - /batch_example/example_2 :
  *   Multistep form : perform batch 1 and batch 2 as separate submission steps.
- * /batch_example/example_3
+ * - /batch_example/example_3 :
  *   No form - start a batch simply by clicking a link
  *   (not really user friendly, should probably be avoided)
+ *
+ * This example is part of the Examples for Developers Project which you can download
+ * and experiment with here: http://drupal.org/project/examples
  */
 
 /**
@@ -143,12 +151,6 @@ function batch_example_page() {
 }
 
 /**
- * @defgroup batch_definitions Example batch definitions
- * @{
- * Definitions of the batches used in this module.
- */
-
-/**
  * Batch 1 : Load 100 times the node with the lowest nid
  */
 function batch_example_batch_1() {
@@ -258,5 +260,5 @@ function batch_example_finished($success, $results, $operations) {
 }
 
 /**
- * @} End of "defgroup batch_definitions".
- */
+ * @} End of "defgroup batch_example".
+ */
\ No newline at end of file
diff --git block_example/block_example.module block_example/block_example.module
index 11485b3..5a2c946 100755
--- block_example/block_example.module
+++ block_example/block_example.module
@@ -8,6 +8,16 @@
  */
 
 /**
+ * @defgroup block_example Example: Block
+ * @ingroup examples
+ * @{
+ * Block defined by a module. (drupal 6)
+ *
+ * This example is part of the Examples for Developers Project which you can download
+ * and experiment with here: http://drupal.org/project/examples
+ */
+
+/**
  * Implementation of hook_block().
  *
  * This hook both declares to Drupal what blocks are provided by the module, and
@@ -100,3 +110,6 @@ function block_example_contents($which_block) {
   }
 }
 
+/**
+ * @} End of "defgroup block_example".
+ */
diff --git email_example/email_example.module email_example/email_example.module
index acf0cba..91fcfb3 100644
--- email_example/email_example.module
+++ email_example/email_example.module
@@ -14,6 +14,23 @@
  */
 
 /**
+ * @defgroup email_example Example: Email
+ * @ingroup examples
+ * @{
+ * Example of mail API. (drupal 6)
+ *
+ * This example module provides two different examples of the Drupal email API.
+ *  - defines a simple contact form and shows how to use drupal_mail()
+ *    to send an e-mail (defined in hook_mail()) when the form is submitted.
+ *  - shows how modules can alter emails defined by other Drupal modules or
+ *    Core using hook_mail_alter by attaching a custom signature before
+ *    they are sent.
+ *
+ * This example is part of the Examples for Developers Project which you can download
+ * and experiment with here: http://drupal.org/project/examples
+ */
+
+/**
  * Implementation of hook_mail().
  *
  * This hook defines a list of possible e-mail templates that this module can
@@ -189,3 +206,7 @@ function email_example_form_validate($form, &$form_state) {
 function email_example_form_submit($form, &$form_state) {
   email_example_mail_send($form_state['values']);
 }
+
+/**
+ * @} End of "defgroup email_example".
+ */
diff --git examples.info examples.info
new file mode 100644
index 0000000..6fd67e6
--- /dev/null
+++ examples.info
@@ -0,0 +1,5 @@
+; $Id: $
+name = Examples For Developers
+description = A variety of example code for you to learn from and hack upon.
+package = Example modules
+core = 6.x
\ No newline at end of file
diff --git examples.module examples.module
new file mode 100644
index 0000000..de13761
--- /dev/null
+++ examples.module
@@ -0,0 +1,39 @@
+<?php
+// $Id: $
+
+/**
+ * @file
+ * This file serves as a stub file for the many Examples modules in the
+ * @link http://drupal.org/project/examples Examples for Developers Project @endlink
+ * which you can download and experiment with.
+ *
+ * One might say that examples.module is an example of documentation. However, note
+ * that the example submodules define many doxygen groups, which may or may not be
+ * a good strategy for other modules.
+ */
+
+/**
+ * @defgroup examples Examples
+ * @{
+ * Well-documented API examples for a broad range of Drupal 6 core functionality.
+ * 
+ * Developers can learn how to use a particular API quickly by experimenting with the
+ * examples, and adapt them for their own use.
+ 
+ * Download the Examples for Developers Project (and participate with submissions, bug
+ * reports, patches, and documentation) here: http://drupal.org/project/examples
+ */
+
+/**
+ * Implementation of hook_help().
+ */
+function examples_help($path, $arg) {
+  // re: http://drupal.org/node/767204 
+  // 5. We need a master group (Examples) that will be in a main examples.module.
+  // The examples.module should be mostly doxy comments that point to the other examples.
+  // It will also have a hook_help() explaining its purpose and how to access the other examples.
+}
+
+/**
+ * @} End of 'defgroup examples'.
+ */
diff --git filter_example/filter_example.module filter_example/filter_example.module
index de424d1..7e671d5 100755
--- filter_example/filter_example.module
+++ filter_example/filter_example.module
@@ -13,6 +13,21 @@
  */
 
 /**
+ * @defgroup filter_example Example: Filter
+ * @ingroup examples
+ * @{
+ * Defining a filter in a module. (drupal 6)
+ *
+ * To show all the capabilities of the filter system, we will define two filters
+ * in this module. One will substitute the string "foo" with an administratively-
+ * defined replacement string. The other will find a custom XML tag, <time />, and
+ * replace it by the current time.
+ *
+ * This example is part of the Examples for Developers Project which you can download
+ * and experiment with here: http://drupal.org/project/examples
+ */
+
+/**
  * Implementation of hook_filter_tips().
  *
  * This hook allows filters to provide help text to users during the content
@@ -142,3 +157,7 @@ function filter_example_filter($op, $delta = 0, $format = -1, $text = '') {
       break;
   }
 }
+
+/**
+ * @} End of "defgroup filter_example".
+ */
diff --git form_example/form_example.module form_example/form_example.module
index db687b0..66229d3 100644
--- form_example/form_example.module
+++ form_example/form_example.module
@@ -6,6 +6,16 @@
  * Examples demonstrating the Drupal Form API.
  */
 
+/**
+ * @defgroup form_example Example: Form API
+ * @ingroup examples
+ * @{
+ * Examples demonstrating the Form API. (drupal 6)
+ *
+ * This example is part of the Examples for Developers Project which you can download
+ * and experiment with here: http://drupal.org/project/examples
+ */
+
 require_once('form_example_elements.inc');
 
 /**
@@ -182,3 +192,7 @@ function form_example_elements() {
 function form_example_theme() {
   return _form_example_element_theme();
 }
+
+/**
+ * @} End of "defgroup form_example".
+ */
diff --git menu_example/menu_example.module menu_example/menu_example.module
index ddd4530..3850c01 100644
--- menu_example/menu_example.module
+++ menu_example/menu_example.module
@@ -8,6 +8,19 @@
  */
 
 /**
+ * @defgroup menu_example Example: Menu API
+ * @ingroup examples
+ * @{
+ * Examples using Menu API. (drupal 6)
+ *
+ * Demonstrates uses of the Menu APIs in Drupal, including hook_menu(),
+ * hook_menu_alter(), and hook_menu_link_alter().
+ *
+ * This example is part of the Examples for Developers Project which you can download
+ * and experiment with here: http://drupal.org/project/examples
+ */
+
+/**
  * Implementatation of hook_menu().
  */
 function menu_example_menu() {
@@ -458,4 +471,8 @@ function menu_example_arg_optional_load($id) {
 function menu_example_arg_optional_to_arg($arg) {
   // If our argument is not provided, give a default of 99.
   return (empty($arg) || $arg == '%') ? 99 : $arg;
-}
\ No newline at end of file
+}
+
+/**
+ * @} End of "defgroup menu_example".
+ */
diff --git node_access_example/node_access_example.module node_access_example/node_access_example.module
index 86416a5..1e5a864 100755
--- node_access_example/node_access_example.module
+++ node_access_example/node_access_example.module
@@ -26,6 +26,37 @@
  */
 
 /**
+ * @defgroup node_access_example Example: Node Access
+ * @ingroup examples
+ * @{
+ * Examples of node access restriction. (drupal 6)
+ *
+ * This is an example illustrating how to restrict access to nodes based on
+ * some criterion associated with the user.
+ *
+ * This example module will simply set a single flag on a node: 'private'. If
+ * the flag is set, only users with the 'view private content' flag can see
+ * the node, and all users with 'edit private content' can edit (but not
+ * delete) the node.
+ *
+ * Additionally we will ensure that the node author can always view, edit,
+ * and delete the node by providing an additional access realm that grants
+ * privileges to the node's author.
+ *
+ * Database definition:
+ * @code
+ *   CREATE TABLE node_access_example (
+ *     nid int(10) unsigned NOT NULL default '0' PRIMARY KEY,
+ *     private int,
+ *     KEY `node_example_nid` (nid)
+ *   )
+ * @endcode
+ *
+ * This example is part of the Examples for Developers Project which you can download
+ * and experiment with here: http://drupal.org/project/examples
+ */
+
+/**
  * Implementation of hook_perm().
  *
  * In this example, we will use a simple permission to determine whether a user
@@ -137,3 +168,7 @@ function node_access_example_nodeapi(&$node, $op, $arg = 0) {
       break;
   }
 }
+
+/**
+ * @} End of "defgroup node_access_example".
+ */
diff --git node_example/node_example.module node_example/node_example.module
index c5a1f71..9804590 100755
--- node_example/node_example.module
+++ node_example/node_example.module
@@ -16,6 +16,27 @@
  */
 
 /**
+ * @defgroup node_example Example: Node
+ * @ingroup examples
+ * @{
+ * Creating a new content type in a module. (drupal 6)
+ *
+ * This is an example outlining how a module can be used to define a new
+ * node type.
+ *
+ * (Note that custom node types are most often created with CCK in recent
+ * versions of Drupal.)
+ *
+ * Our example node type will allow users to specify a "color" and a "quantity"
+ * for their nodes; some kind of rudimentary inventory-tracking system, perhaps?
+ * To store this extra information, we need an auxiliary database table as
+ * defined in node_example_schema().
+ *
+ * This example is part of the Examples for Developers Project which you can download
+ * and experiment with here: http://drupal.org/project/examples
+ */
+
+/**
  * Implementation of hook_menu().
  */
 function node_example_menu() {
@@ -289,3 +310,7 @@ function theme_node_example_order_info($node) {
   $output .= '</div>';
   return $output;
 }
+
+/**
+ * @} End of "defgroup node_example".
+ */
\ No newline at end of file
diff --git nodeapi_example/nodeapi_example.module nodeapi_example/nodeapi_example.module
index ff98342..aafdb59 100755
--- nodeapi_example/nodeapi_example.module
+++ nodeapi_example/nodeapi_example.module
@@ -11,6 +11,19 @@
  */
 
 /**
+ * @defgroup nodeapi_example Example: NodeAPI
+ * @ingroup examples
+ * @{
+ * Modifying a node during its life-cycle. (drupal 6)
+ *
+ * This example demostrates 'piggy-backing' some data on the
+ * node in another database table.
+ *
+ * This example is part of the Examples for Developers Project which you can download
+ * and experiment with here: http://drupal.org/project/examples
+ */
+
+/**
  * Implementation of hook_form_alter().
  *
  * By implementing this hook, we're able to modify any form. We'll only make
@@ -18,7 +31,7 @@
  *
  * We need to have a way for administrators to indicate which content types
  * should have our rating field added. This is done by inserting a checkbox in
- * the node's content type configuration page.
+ * the node's content type configuration page, in the 'Workflow' group.
  */
 function nodeapi_example_form_alter(&$form, $form_state, $form_id) {
   if ($form_id == 'node_type_form' && isset($form['identity']['type'])) {
@@ -162,3 +175,6 @@ function theme_nodeapi_example_rating($rating) {
   return $output;
 }
 
+/**
+ * @} End of "defgroup nodeapi_example".
+ */
\ No newline at end of file
diff --git page_example/page_example.module page_example/page_example.module
index d62fd93..08ec6ed 100755
--- page_example/page_example.module
+++ page_example/page_example.module
@@ -8,6 +8,19 @@
  */
 
 /**
+ * @defgroup page_example Example: Page
+ * @ingroup examples
+ * @{
+ * Create a page in a module. (drupal 6)
+ *
+ * This example demonstrates how a module can be used to display a
+ * custom page at a given URL.
+ *
+ * This example is part of the Examples for Developers Project which you can download
+ * and experiment with here: http://drupal.org/project/examples
+ */
+
+/**
  * Implementation of hook_help().
  *
  * Throughout Drupal, hook_help() is used to display help text at the top of
@@ -151,3 +164,7 @@ function page_example_arguments($first, $second) {
 
   return theme('item_list', $list);
 }
+
+/**
+ * @} End of "defgroup page_example".
+ */
\ No newline at end of file
diff --git simpletest_example/simpletest_example.module simpletest_example/simpletest_example.module
index 0b7785b..af9f844 100644
--- simpletest_example/simpletest_example.module
+++ simpletest_example/simpletest_example.module
@@ -10,6 +10,21 @@
  */
 
 /**
+ * @defgroup simpletest_example Example: Simpletest
+ * @ingroup examples
+ * @{
+ * Creating tests. (drupal 6)
+ *
+ * This example accompanies the tutorial at
+ * http://drupal.org/node/395012.
+ *
+ * This is built on a traditional node-type implementation.
+ *
+ * This example is part of the Examples for Developers Project which you can download
+ * and experiment with here: http://drupal.org/project/examples
+ */
+
+/**
  * Implementation of hook_node_info().
  */
 function simpletest_example_node_info() {
@@ -97,3 +112,6 @@ function _simpletest_example_explanation() {
   return $explanation;
 }
 
+/**
+ * @} End of "defgroup simpletest_example".
+ */
\ No newline at end of file
diff --git token_example/token_example.module token_example/token_example.module
index 444a4bb..66202a7 100644
--- token_example/token_example.module
+++ token_example/token_example.module
@@ -8,8 +8,20 @@
  * The Token module provides an API for providing tokens to other modules.
  * Tokens are small bits of text that can be placed into larger documents
  * via simple placeholders, like %site-name or [user].
+ */
+
+/**
+ * @defgroup token_example Example: Token API
+ * @ingroup examples
+ * @{
+ * Examples using the Token API. (drupal 6)
+ *
+ * The Token module provides an API for providing tokens to other modules.
+ * Tokens are small bits of text that can be placed into larger documents
+ * via simple placeholders, like %site-name or [user].
  *
- * @ingroup token
+ * This example is part of the Examples for Developers Project which you can download
+ * and experiment with here: http://drupal.org/project/examples
  */
 
 /**
@@ -200,3 +212,7 @@ function _token_example_get_user() {
   $accounts = array_map('check_plain', $accounts);
   return $accounts;
 }
+
+/**
+ * @} End of "defgroup token_example".
+ */
diff --git trigger_example/trigger_example.module trigger_example/trigger_example.module
index 1556a2c..f4345e6 100644
--- trigger_example/trigger_example.module
+++ trigger_example/trigger_example.module
@@ -2,6 +2,16 @@
 // $Id: trigger_example.module,v 1.1 2009/10/03 14:35:28 rfay Exp $
 
 /**
+ * @defgroup trigger_example Example: Trigger
+ * @ingroup examples
+ * @{
+ * Examples of module-defined triggers. (drupal 6)
+ *
+ * This example is part of the Examples for Developers Project which you can download
+ * and experiment with here: http://drupal.org/project/examples
+ */
+
+/**
  * Implementation of hook_help().
  */
 function trigger_example_help($path, $arg) {
@@ -152,3 +162,7 @@ function trigger_example_form_submit($form, &$form_state) {
     trigger_example_pong();
   }
 }
+
+/**
+ * @} End of "defgroup trigger_example".
+ */
diff --git vertical_tabs_example/vertical_tabs_example.module vertical_tabs_example/vertical_tabs_example.module
index 1b09420..94ee61e 100644
--- vertical_tabs_example/vertical_tabs_example.module
+++ vertical_tabs_example/vertical_tabs_example.module
@@ -9,6 +9,20 @@
  */
 
 /**
+ * @defgroup vertical_tabs_example Example: Vertical Tabs
+ * @ingroup examples
+ * @{
+ * Using vertical_tabs module. (drupal 6)
+ *
+ * Shows how to integrate your custom node options with vertical tabs module in
+ * Drupal 6. This example does not cover how to save / load custom setting, and
+ * only deals with elements visibility.
+ *
+ * This example is part of the Examples for Developers Project which you can download
+ * and experiment with here: http://drupal.org/project/examples
+ */
+
+/**
  * Implements hook_menu for a simple explanation page.
  */
 function vertical_tabs_example_menu() {
@@ -85,3 +99,7 @@ function vertical_tabs_example_form_alter(&$form, $form_state, $form_id) {
 function _vertical_tabs_example_explanation() {
   return t("The Vertical Tabs Example shows how a custom module can best support vertical tabs. To see the effects of this module, look at the <a href='!node_add'>node/add</a> form", array('!node_add' => url('node/add')));
 }
+
+/**
+ * @} End of "defgroup vertical_tabs_example".
+ */
diff --git xmlrpc_example/xmlrpc_example.module xmlrpc_example/xmlrpc_example.module
index 47ff177..d3dc74d 100644
--- xmlrpc_example/xmlrpc_example.module
+++ xmlrpc_example/xmlrpc_example.module
@@ -11,6 +11,19 @@
  */
 
 /**
+ * @defgroup xmlrpc_example Example: XML-RPC
+ * @ingroup examples
+ * @{
+ * XML-RPC callbacks and validation. (drupal 6)
+ *
+ * Information on the test in this suite can be found at:
+ * http://www.xmlrpc.com/validator1Docs
+ *
+ * This example is part of the Examples for Developers Project which you can download
+ * and experiment with here: http://drupal.org/project/examples
+ */
+
+/**
  * Implementation of hook_xmlrpc().
  *
  * This function provides Drupal with an array to map XML-RPC callbacks to the
@@ -72,3 +85,6 @@ function xmlrpc_example_simpleStructReturnTest($number) {
   return array("times10" => ($number*10), "times100" => ($number*100), "times1000" => ($number*1000));
 }
 
+/**
+ * @} End of "defgroup xmlrpc_example".
+ */
