diff --git a/README.txt b/README.txt
index 637852c..ff3dd5e 100644
--- a/README.txt
+++ b/README.txt
@@ -1,47 +1,142 @@
-Name:
-----
-    flickr http://drupal.org/project/flickr
-    (Unfinished/Incomplete)
-
-Requirements:
-------------
-This module requires Drupal 6.X and a Flickr API key.
-
-Overview:
---------
-Flickr adds a filter to allow photos from http://flickr.com to be
-integrated into your site via flickr's API. There are several Flickr blocks
-that you can enable as well.
-
-Installation and configuration:
-------------------------------
-1.) Simply extract the download package in your modules directory '/modules'
-    or '/sites/all/modlues'.
-2.) Enable the module in 'admin/build/modules/'.
-3.) Configure the API Key '/admin/settings/flickr'.
-4.) Add the flickr filter to one of your input formats by following
-the configure link 'admin/settings/filters'.
-5.) Allow permissions '/admin/user/access'.
-
-Usage:
-------
-The filter format is: [flickr-photo:id=230452326,size=s] and 
-[flickr-photoset:id=72157594262419167,size=m]
-
-The size parameter can be one of the following:
-(if available, check on Flickr > Actions > View all sizes"):
-  s - small square 75x75
-  t - thumbnail, 100 on longest side
-  q - big square 150x150
-  m - small, 240 on longest side
-  n - small, 320 on longest side
-  - - medium, 500 on longest side
-  z - medium, 640 on longest side
-  c - medium, 800 on longest side
-  b - large, 1024 on longest side
-  h - large, 1600 on longest side
-  k - large, 2048 on longest side
-  o - original image
-
-More info at http://www.flickr.com/help/faq/search/?q=sizes
-
+NAME
+====
+Flickr
+Project page at https://drupal.org/project/flickr
+
+REQUIREMENTS
+============
+This module requires Drupal 6.X and a Flickr API key.
+
+OVERVIEW
+========
+The Flickr module embeds images hosted on Flickr with a link to the
+corresponding Flickr page.
+
+- Flickr images can be displayed in blocks, within content or as fields.
+- Open Flickr photos in Colorbox, Lightbox or alike.
+- Image caption with the Flickr title, date taken, where  and by who.
+- Show the longer Flickr description on hover if it exists.
+
+INSTALLATION AND CONFIGURATION
+==============================
+1.) Extract the download package in the '/sites/all/modules' directory.
+2.) Enable the module in 'admin/build/modules'.
+3.) Configure the API Key and settings at '/admin/settings/flickr'.
+4.) Allow permissions '/admin/user/permissions'.
+
+SETTINGS
+========
+Settings are found at '/admin/config/media/flickr'. After changing many of the
+settings below, it is often required to CLEAR THE SITE CACHE to have the changes
+to take effect on existing content at '/admin/settings/performance'.
+
+API Key
+-------
+Get an API Key at http://www.flickr.com/services/apps/create/apply.
+
+API Shared Secret
+-----------------
+Default Flickr User ID
+To use if in the block configuration no user is specified. Must be a valid
+Flickr User ID, username or email address. Emails or usernames (that might
+change at any given time) are internally (in the variable) replaced with a
+stable NSID (Flickr ID number). These are rendered in admin forms (settings or
+block config) as Flickr usernames. 'Maria Emanuela' is human readable,
+'43937662@N05' is not. Internal the module still uses the Flickr ID number as it
+is more reliable.
+
+Update interval
+---------------
+The refresh interval how often to check if cached Flickr API calls are up to
+date. Defaults to 1 hour.
+
+Number of photos per photoset
+-----------------------------
+Defaults to 20.
+
+Default size
+------------
+Only if the submodule Flickr Filter is enabled.
+A default Flickr size to use. This will be used when no size is specified, for
+example [flickr-photo:id=3711935987]. TAKE CARE, n (320px) and c (800px) sizes
+are missing on many "older" Flickr images!
+Defaults to m: 240 px on longest side.
+
+Use flickr.css
+--------------
+Uncheck to take care of the styling yourself in custom CSS.
+Selected by default.
+
+FLICKR INFO TO USE (field group)
+--------------------------------
+Minimum width to display a title caption
+----------------------------------------
+Small images have little space for a title caption. Replaces it with the text
+"Flickr" that links to the photo page on Flickr to comply with their Guidelines.
+Defaults to 100 px. Set it to 0 px to always include or 999 px to always
+exclude.
+
+Minimum image width to display date, location and photographer under the caption
+--------------------------------------------------------------------------------
+Suppress extra info on small images. After saving the configuration clear the
+cache.
+Defaults to 150 px. Set it to 0 px to always include or 999 px to always
+exclude.
+Adds date, location and photographer info to the caption on images of a certain
+width. The date is in the form of 'time ago'. The photographer's Real Name is
+used, if not available the Username. In the caption it links to the user page on
+Flickr.
+
+Info to include when enlarging the image in Colorbox, Lightbox or alike
+-----------------------------------------------------------------------
+Usually this info is displayed under the enlarged image.
+Checkboxes (multiple options can be selected).
+- Title
+- Date, location and photographer
+- Description
+All selected by default. This info is concatenated with '-' separators and added
+as the link 'title' attribute. HTML is stripped, double quotes are removed (it
+goes into the title="[description]" attribute) and special characters are
+decoded (&copy; turns into ©). If the title and description are identical, only
+the title is used.
+
+As a side note: The description is always included as the image 'title'
+attribute (shows on hover). If the description is not available the title will
+be used.
+
+OVERLAY BROWSER SETTINGS (field group)
+--------------------------------------
+Colorbox, Lightbox (use the dev version) or alike.
+Leave these fields empty to link directly to the Flickr photo page instead of
+opening the bigger version of the image. It also omits the caption in that case.
+This is only done to not alter the behaviour on previous installs of the Flickr
+module. The best way of giving attribution is by using a full version of the
+caption (default settings).
+
+class
+-----
+Use 'colorbox' if you are using Colorbox. (https://drupal.org/project/colorbox)
+With Lightbox you can leave it empty. (https://drupal.org/project/lightbox2)
+
+rel
+---
+Use 'gallery-all' if you are using Colorbox. It can be anything you want,
+really. As long there is something.
+Use 'lightbox[gallery]' if you are using Lightbox2. The part inside the square
+brackets can be anything you want but must be one word without spaces.
+
+NOTE: With Lightbox if you select an 'Automatic image handling' for Flickr
+images, you override the behaviour set here. If you don't want that, leave it
+'Disabled'. (/admin/settings/lightbox2/automatic)
+
+Image size to open
+------------------
+The image size to open in the overlay browser when clicking the image. Larger
+sizes make navigating to next and previous pictures slower. TAKE CARE, n (320px)
+and c (800px) sizes are missing on many "older" Flickr images!
+Defaults to -: 500 px on longest side.
+
+MORE INFO
+=========
+The flickr module uses XML-RPC to connect to Flickr's API and retrieve photo
+information. Flickr API Documentation: http://www.flickr.com/services/api/
diff --git a/block/flickr_block.info b/block/flickr_block.info
index b3b2214..f1bea64 100644
--- a/block/flickr_block.info
+++ b/block/flickr_block.info
@@ -1,5 +1,5 @@
 name = Flickr Block
-description = Flickr Block for inserting photos into content.
+description = Display Flickr images in blocks to show recent or random images from a user, set or group.
 dependencies[] = flickr
 package = Flickr
 core = 6.x
diff --git a/block/flickr_block.module b/block/flickr_block.module
index c992c39..ae24ec5 100644
--- a/block/flickr_block.module
+++ b/block/flickr_block.module
@@ -1,6 +1,17 @@
 <?php
 
 /**
+ * Implements hook_help().
+ */
+function flickr_block_help($path, $arg) {
+  switch ($path) {
+    case 'admin/help#flickr_block':
+      // Return a line-break version of the README.txt.
+      return _filter_autop(file_get_contents(dirname(__FILE__) . '/README.txt'));
+  }
+}
+
+/**
  * Implements hook_block().
  */
 function flickr_block($op = 'list', $delta = 0, $edit = array()) {
diff --git a/field/flickrfield.info b/field/flickrfield.info
index db7f1da..e40d802 100644
--- a/field/flickrfield.info
+++ b/field/flickrfield.info
@@ -1,5 +1,5 @@
 name = Flickr Field
-description = Flickr CCK field to insert Flickr images into content.
+description = A Flickr CCK field to add Flickr images or sets to content.
 dependencies[] = flickr
 dependencies[] = content
 package = Flickr
diff --git a/field/flickrfield.module b/field/flickrfield.module
index 4f4ac7d..5ea6459 100644
--- a/field/flickrfield.module
+++ b/field/flickrfield.module
@@ -9,21 +9,22 @@
  */
 
 /**
- * Include css unconditionally.
+ * Implements hook_help().
  */
-function flickrfield_init() {
-  if (variable_get('flickr_css', 1)) {
-    drupal_add_css(drupal_get_path('module', 'flickr') . '/flickr.css');
+function flickrfield_help($path, $arg) {
+  switch ($path) {
+    case 'admin/help#flickrfield':
+      // Return a line-break version of the README.txt.
+      return _filter_autop(file_get_contents(dirname(__FILE__) . '/README.txt'));
   }
 }
 
 /**
- * Implements hook_help().
+ * Include css unconditionally.
  */
-function flickrfield_help($section, $arg) {
-  switch ($section) {
-    case 'admin/help#flickrfield':
-      return t('Flickrfields display Flickr photos or photosets. Input the user id of the photo owner and the photo or photoset id. The id is visible in the url when you view the photo or photoset on Flickr.');
+function flickrfield_init() {
+  if (variable_get('flickr_css', 1)) {
+    drupal_add_css(drupal_get_path('module', 'flickr') . '/flickr.css');
   }
 }
 
diff --git a/filter/flickr_filter.info b/filter/flickr_filter.info
index 89fe54c..3f968c8 100644
--- a/filter/flickr_filter.info
+++ b/filter/flickr_filter.info
@@ -1,5 +1,5 @@
 name = Flickr Filter
-description = Flickr Filter for inserting photos into content.
+description = An input filter to insert Flickr photos and sets into content.
 dependencies[] = flickr
 package = Flickr
 core = 6.x
diff --git a/filter/flickr_filter.module b/filter/flickr_filter.module
index b169257..92bb9a3 100644
--- a/filter/flickr_filter.module
+++ b/filter/flickr_filter.module
@@ -2,6 +2,17 @@
 
 require_once(drupal_get_path('module', 'flickr') . '/flickr.inc');
 
+/**
+ * Implements hook_help().
+ */
+function flickr_filter_help($path, $arg) {
+  switch ($path) {
+    case 'admin/help#flickr_filter':
+      // Return a line-break version of the README.txt.
+      return _filter_autop(file_get_contents(dirname(__FILE__) . '/README.txt'));
+  }
+}
+
 function flickr_filter_tips($delta, $format, $long = FALSE) {
   switch ($delta) {
     case 0:
diff --git a/flickr.info b/flickr.info
index eb76202..1611006 100644
--- a/flickr.info
+++ b/flickr.info
@@ -1,4 +1,4 @@
 name = Flickr
-description = Flickr integration.
+description = Embeds images hosted on Flickr with a link to the corresponding Flickr page.
 package = Flickr
 core = 6.x
diff --git a/flickr.module b/flickr.module
index c27ad29..7ef15a3 100644
--- a/flickr.module
+++ b/flickr.module
@@ -3,25 +3,23 @@
 require_once(drupal_get_path('module', 'flickr') . '/flickr.inc');
 
 /**
- * Implements hook_init().
+ * Implements hook_help().
  */
-function flickr_init() {
-  // Determine the setting to use flickr.css or not.
-  if (variable_get('flickr_css', 1)) {
-    drupal_add_css(drupal_get_path('module', 'flickr') . '/flickr.css', $type = 'module', $media = 'all', $preprocess = TRUE);
+function flickr_help($path, $arg) {
+  switch ($path) {
+    case 'admin/help#flickr':
+      // Return a line-break version of the README.txt.
+      return _filter_autop(file_get_contents(dirname(__FILE__) . '/README.txt'));
   }
 }
 
 /**
- * Implements hook_help().
+ * Implements hook_init().
  */
-function flickr_help($section, $arg) {
-  switch ($section) {
-    case 'admin/settings/flickr':
-      return t("You will need a Flickr API key to use this module. You can apply for one at <a href='@link'>@link</a>", array('@link' => url('http://www.flickr.com/services/api/keys/apply/')));
-
-    case 'admin/help#flickr':
-      return t("The flickr module uses XML-RPC to connect to Flickr's API and retreive photo information.");
+function flickr_init() {
+  // Determine the setting to use flickr.css or not.
+  if (variable_get('flickr_css', 1)) {
+    drupal_add_css(drupal_get_path('module', 'flickr') . '/flickr.css', $type = 'module', $media = 'all', $preprocess = TRUE);
   }
 }
 
