Index: commerce_no_payment/commerce_no_payment.module
===================================================================
--- commerce_no_payment/commerce_no_payment.module	(revision 1152)
+++ commerce_no_payment/commerce_no_payment.module	(working copy)
@@ -23,6 +23,45 @@
 }
 
 /**
+ * Payment method callback: settings form.
+ */
+function commerce_no_payment_settings_form($settings = NULL) {
+  $settings = (array) $settings + array(
+    'information' => '',
+    'label' => 'No payment',
+  );
+  
+  $form = array();
+  
+  $form['label'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Label'),
+    '#description' => t('The label of this payment method as shown to users.'),
+    '#default_value' => $settings['label']
+  );
+  $form['information'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Information'),
+    '#description' => t('Information you would like to be shown to users when they select this payment method, such as the address where they should send the cheque'),
+    '#default_value' => $settings['information']
+  );
+  
+  return $form;
+}
+
+function commerce_no_payment_form_commerce_checkout_form_review_alter(&$form, &$form_state) {
+  $methods = $form['commerce_payment']['payment_methods']['#value'];
+  $options = &$form['commerce_payment']['payment_method']['#options'];
+  foreach ($options as $key => $label) {
+    if ($methods[$key]['method_id'] != 'commerce_no_payment'
+    || empty($methods[$key]['settings']['label'])) {
+      continue;
+    }
+    $options[$key] = $methods[$key]['settings']['label'];
+  }
+}
+
+/**
  * Payment method callback: submit form.
  */
 function commerce_no_payment_submit_form($payment_method, $pane_values, $checkout_pane, $order) {
@@ -33,6 +72,19 @@
     $pane_values += $order->data['commerce_no_payment'];
   }
 
+  if (!empty($payment_method['settings']['information'])) {
+    $form['commerce_cheque_description'] = array(
+      '#markup' => $payment_method['settings']['information']
+    );
+  }
+  
+  // Need to create a dummy value to solve http://drupal.org/node/1230666
+  // Probably an issue in the main commerce module
+  $form['dummy'] = array(
+    '#type' => 'hidden',
+    '#value' => 'dummy'
+  );
+
   // Merge in default values.
   $pane_values += array(
     'name' => '',
