diff --git CHANGELOG.txt CHANGELOG.txt
index d9eaa53..d20a77c 100644
--- CHANGELOG.txt
+++ CHANGELOG.txt
@@ -1,6 +1,9 @@
 // $Id$
 
 amazon_store 2.0XXXXX ???
+* #655626 by rfay: Remove ugly graphic from search block. Improve alignment of search blocks in various themes.
+                   Wider (and configurable) keyword entry area in search block.
+                   Add configuration to both blocks.
 * #652350 by rfay: Remove links from features section of item detail page.
 * #652078 by rfay: Add a themable block with links to categories.
 * #588958 by rfay: Improve caching by splitting into 2 tables and use shorter refresh intervals.
diff --git amazon_store.css amazon_store.css
index 222ad35..526fca5 100644
--- amazon_store.css
+++ amazon_store.css
@@ -33,7 +33,9 @@
 	margin: 0;
 	padding: 0;
 }
-
+.search-form-clear {
+  clear: both;
+}
 .search-results p.title {
 	font-size: large;
 	font-weight: bold;
@@ -77,6 +79,10 @@
   clear: both;
 }
 
+.search-indexes-table td {
+  vertical-align: top;
+  line-height: 120%;
+}
 /* buttonize a link */
 
 a.buttonize {
diff --git amazon_store.install amazon_store.install
index d0bba97..06ffe06 100644
--- amazon_store.install
+++ amazon_store.install
@@ -24,6 +24,8 @@ function amazon_store_uninstall() {
           amazon_store_show_category_select
           amazon_store_show_narrowby_form
           amazon_store_show_searchform
+          amazon_store_search_block_keywords_width
+          amazon_store_categories_block_num_columns
           amazon_store_show_sort_form";
 
   foreach(preg_split("/\s+/", $vars) as $var) {
diff --git amazon_store.module amazon_store.module
index 33c0080..fd24c4c 100644
--- amazon_store.module
+++ amazon_store.module
@@ -90,25 +90,59 @@ function amazon_store_menu() {
  * Block 'categories': A list of links to Amazon categories.
  */
 function amazon_store_block($op = 'list', $delta = "0", $edit = array()) {
-  if ($op == 'list') {
-    $blocks[0]['info'] = t('Search Amazon');
-    $blocks['categories']['info'] = t('Amazon Store Categories');
-    return $blocks;
-  }
-  else   if ($op == 'view') {
-    $block = array();
-    switch ($delta) {
-      case "0":
-        $directory = drupal_get_path('module','amazon_store');
-        $block['subject'] = t("Search Amazon");
-        $block['content'] = theme('amazon_store_search_block');
-        break;
-      case 'categories':
-        $block['subject'] = t('Search Amazon Categories');
-        $block['content'] = theme('amazon_store_categories');
-        break;
-    }
-    return $block;
+  switch ($op) {
+    case 'list':
+      $blocks[0]['info'] = t('Search Amazon');
+      $blocks['categories']['info'] = t('Amazon Store Categories');
+      return $blocks;
+    case 'view':
+      $block = array();
+      switch ($delta) {
+        case "0":
+          $block['subject'] = t("Search Amazon");
+          $block['content'] = theme('amazon_store_search_block');
+          break;
+        case 'categories':
+          $block['subject'] = t('Search Amazon Categories');
+          $block['content'] = theme('amazon_store_categories');
+          break;
+          return $block;
+      }
+      return $block;
+      break;
+    case 'configure':
+      switch ($delta) {
+        case "0":
+          $form = array();
+          $form['amazon_store_search_block_keywords_width'] = array(
+            '#type' => 'textfield',
+            '#title' => t('Width (in characters) of keywords element'),
+            '#size' => 5,
+            '#default_value' => variable_get('amazon_store_search_block_keywords_width',  15),
+          );
+          return $form;
+        case "categories":
+          $form = array();
+          $form['amazon_store_categories_block_num_columns'] = array(
+            '#type' => 'select',
+            '#options' => drupal_map_assoc(array(1, 2, 3, 4, 5)),
+            '#title' => t('Number of columns'),
+            '#default_value' => variable_get('amazon_store_categories_block_num_columns',  2),
+          );
+          return $form;
+
+      }
+      break;
+    case 'save':
+      switch ($delta) {
+        case '0':
+          variable_set('amazon_store_search_block_keywords_width', $edit['amazon_store_search_block_keywords_width']);
+          break;
+        case "categories":
+          variable_set('amazon_store_categories_block_num_columns', $edit['amazon_store_categories_block_num_columns']);
+          break;
+      }
+      return;
   }
 }
 
@@ -790,7 +824,7 @@ function amazon_store_report_error($errors) {
 /**
  * Basic Amazon search form.
  */
-function amazon_store_search_form() {
+function amazon_store_search_form(&$form_state, $keyword_width = 15) {
 
   if (variable_get('amazon_store_show_category_select', TRUE)) {
     $form['SearchIndex'] = array(
@@ -808,13 +842,17 @@ function amazon_store_search_form() {
   $form['Keywords'] = array(
       '#title' => t('Search For'),
       '#type' => 'textfield',
-      '#size' => 15,
+      '#size' => $keyword_width,
       '#default_value' => isset($_GET['Keywords']) ? $_GET['Keywords'] : "",
   );
   $form['submit'] = array(
       '#type' => 'submit',
       '#value' => t('Search Amazon'),
   );
+  $form['clear'] = array(
+    '#type' => 'markup',
+    '#value' => "<div class='search-form-clear'></div>",
+  );
   return $form;
 
 }
@@ -1647,6 +1685,10 @@ function amazon_store_sort_form(&$form_state) {
       '#name' => t('Sort'),
       '#attributes' => array('class' => 'no-js'),
   );
+  $form['clear'] = array(
+    '#type' => 'markup',
+    '#value' => "<div class='search-form-clear'></div>",
+  );
   return $form;
 }
 
@@ -1711,6 +1753,11 @@ function amazon_store_searchbin_sets_form(&$form_state, $searchBinSets) {
       unset($form['searchbins'][$narrowBy]);
     }
   }
+  $form['clear'] = array(
+    '#type' => 'markup',
+    '#value' => "<div class='search-form-clear'></div>",
+  );
+
   return $form;
 }
 
diff --git amazon_store_categories.tpl.php amazon_store_categories.tpl.php
index 2207e86..e37cbe2 100644
--- amazon_store_categories.tpl.php
+++ amazon_store_categories.tpl.php
@@ -5,14 +5,20 @@
  *   Present a block of Amazon store category links.
  */
 
+$num_columns = variable_get('amazon_store_categories_block_num_columns', 2);
 $categories = $GLOBALS['amazon_store_search_indexes']->getSearchIndexPulldown(TRUE);
-
-$output = "<div class='amazon-store-category-blurb'>" . t("Search Amazon in these categories:") . "</div>";
-$output .= "<ul>";
-foreach($categories as $category => $friendly_name) {
+print "<div class='amazon-store-category-blurb'>" . t("Search Amazon in these categories:") . "</div>";
+$td_length = (int)(count($categories)/$num_columns);
+print "<table class='search-indexes-table'><tr><td>";
+$count = 1;
+$column = 1;
+foreach ($categories as $category => $friendly_name) {
   $link = l($friendly_name, "amazon_store", array('query' => array('SearchIndex' => $category)));
-  $output .= "<li>$link</li>";
+  print "<p>$link</p>";
+  if (($count % $td_length == 0) && $column < $num_columns) {
+    print "</td><td>";
+    $column ++;
+  }
+  $count++;
 }
-$output .= "</ul>";
-$output = "<div class='amazon-store-category-links'>" . $output . "</div>";
-print $output;
\ No newline at end of file
+print "</td></tr></table>";
diff --git amazon_store_search_block.tpl.php amazon_store_search_block.tpl.php
index 670208b..5793bea 100644
--- amazon_store_search_block.tpl.php
+++ amazon_store_search_block.tpl.php
@@ -4,9 +4,5 @@
  * @file
  * 	Contents of amazon_store_search_block
  */
-print drupal_get_form('amazon_store_search_form');
-?>
-<br>
-<div align="center" class="cart-button"><a href="<?php print url("amazon_store/cart") ?>" title="View your shopping cart">
-<?php print theme('image',"$directory/images/shopping_cart.png", t('Shopping Cart'), t('Shopping Cart')); ?></a>
-</div>
+print drupal_get_form('amazon_store_search_form', variable_get('amazon_store_search_block_keywords_width', 15));
+// You could add a link to the cart here.
\ No newline at end of file
diff --git amazon_store_search_results.tpl.php amazon_store_search_results.tpl.php
index ccbd9ff..7788127 100644
--- amazon_store_search_results.tpl.php
+++ amazon_store_search_results.tpl.php
@@ -9,11 +9,12 @@
 ?>
 <?php
   if (variable_get('amazon_store_show_searchform',TRUE)) {
-    print drupal_get_form('amazon_store_search_form');
+    // Argument specifies how wide the keywords textfield should be, in chars.
+    print drupal_get_form('amazon_store_search_form', 50);
   }
 ?>
 <div class="amazon-store-panel search-results"><!--
-<a href='<?php url("amazon_store/cart") ?>'> Go to your cart</a>
+<a href='<?php print url("amazon_store/cart") ?>'> Go to your cart</a>
  -->
 
 
diff --git searchindexes.inc searchindexes.inc
index 029f281..74fa737 100644
--- searchindexes.inc
+++ searchindexes.inc
@@ -58,6 +58,9 @@ class SearchIndexes {
     if ($exclude_all_searchindex) {
       unset($rv['All']);
     }
+    foreach ($rv as $name => $friendly_name) {
+      $rv[$name] = $this->searchIndexPulldown[$name];
+    }
     return $rv;
   }
   function getSorts($searchIndex) {
