diff --git back_to_top.admin.inc back_to_top.admin.inc
index 03cae8f..28d4276 100644
--- back_to_top.admin.inc
+++ back_to_top.admin.inc
@@ -20,6 +20,12 @@ function back_to_top_settings($form_state) {
     '#description' => t('Do you want to prevent Back To Top on admin pages?'),
     '#default_value' => variable_get('back_to_top_prevent_in_admin', TRUE),
   );
+  $form['back_to_top_use_only_blocks'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Use Back to Top in blocks'),
+    '#description' => t('Do you want Back to Top only visible in blocks?'),
+    '#default_value' => variable_get('back_to_top_use_only_blocks', FALSE),
+  );
   $form['back_to_top_button_type'] = array(
     '#type' => 'radios',
     '#title' => t('Do you want Back To Top to use a PNG-24 image or a Text/Css button?'),
@@ -31,7 +37,7 @@ function back_to_top_settings($form_state) {
   );
   $form['back_to_top_button_place'] = array(
     '#title' => t('Placement'),
-    '#description' => t('Where should the Back To Top button appear?'),
+    '#description' => t('Where should the Back To Top button appear? This setting has no effect when using Back to Top in blocks.'),
     '#type' => 'select',
     '#options' => array(
       1 => t('Bottom right'),
diff --git back_to_top.module back_to_top.module
index 0929204..c07f419 100644
--- back_to_top.module
+++ back_to_top.module
@@ -26,6 +26,29 @@ function back_to_top_menu() {
 }
 
 /**
+* Implements hook_block_info().
+*/
+function back_to_top_block_info() {
+  $blocks['back_to_top'] = array(
+    'info' => t('Back to top'),
+    'cache' => DRUPAL_CACHE_GLOBAL,
+  );
+  return $blocks;
+}
+
+/**
+* Implements hook_block_view().
+*/
+function back_to_top_block_view($delta = '') {
+  switch($delta){
+    case 'back_to_top':
+      $block['subject'] = t('Back to top');
+      $block['content'] = t(' ');
+  }
+  return $block;
+}
+
+/**
  * Implementation of hook_init
  * Add javascript & css but first check if prevent on mobile
  */
@@ -33,6 +56,7 @@ function back_to_top_init() {
   $settings = array(
     'back_to_top_prevent_on_mobile' => variable_get('back_to_top_prevent_on_mobile', TRUE),
     'back_to_top_prevent_in_admin' => variable_get('back_to_top_prevent_in_admin', TRUE),
+    'back_to_top_use_only_blocks' => variable_get('back_to_top_use_only_blocks', FALSE),
     'back_to_top_button_type' => variable_get('back_to_top_button_type', 'image'),
   );
   if (variable_get('back_to_top_prevent_on_mobile', 'TRUE') && (is_mobile())) {
@@ -42,49 +66,69 @@ function back_to_top_init() {
     return FALSE;
   }
   drupal_add_library('system', 'effects');
-  drupal_add_js(drupal_get_path('module', 'back_to_top') . '/back_to_top.js', array('group' => JS_DEFAULT, 'every_page' => TRUE));
+
+  if (variable_get('back_to_top_use_only_blocks', 'FALSE')) {
+    drupal_add_js(drupal_get_path('module', 'back_to_top') . '/back_to_top_block.js', array('group' => JS_DEFAULT, 'every_page' => TRUE));
+  }
+  else {
+    drupal_add_js(drupal_get_path('module', 'back_to_top') . '/back_to_top.js', array('group' => JS_DEFAULT, 'every_page' => TRUE));
+  }
   
   // Add stylesheet for image or text/css button
   if ((variable_get('back_to_top_button_type', 'image')) == "text" ) {
-    drupal_add_css(drupal_get_path('module', 'back_to_top') . '/back_to_top_text.css', array('group' => CSS_DEFAULT, 'every_page' => TRUE));
+    if (variable_get('back_to_top_use_only_blocks', 'FALSE')) {
+      drupal_add_css(drupal_get_path('module', 'back_to_top') . '/back_to_top_text_block.css', array('group' => CSS_DEFAULT, 'every_page' => TRUE));
+    }
+    else {
+      drupal_add_css(drupal_get_path('module', 'back_to_top') . '/back_to_top_text.css', array('group' => CSS_DEFAULT, 'every_page' => TRUE));
+    }
   }
   else {
-    drupal_add_css(drupal_get_path('module', 'back_to_top') . '/back_to_top.css', array('group' => CSS_DEFAULT, 'every_page' => TRUE));
+    if (variable_get('back_to_top_use_only_blocks', 'FALSE')) {
+      drupal_add_css(drupal_get_path('module', 'back_to_top') . '/back_to_top_block.css', array('group' => CSS_DEFAULT, 'every_page' => TRUE));
+    }
+    else {
+      drupal_add_css(drupal_get_path('module', 'back_to_top') . '/back_to_top.css', array('group' => CSS_DEFAULT, 'every_page' => TRUE));
+    }
   }
   
-  // Check variables and add placement
-  if ((variable_get('back_to_top_button_place', '1')) == 2 ) {
-    $css = "#backtotop { left: 10px; }";
-    drupal_add_css($css, 'inline');  
-  }
-  if ((variable_get('back_to_top_button_place', '1')) == 3 ) {
-    $css = "#backtotop { left: 50%; margin-left: -50px; }";
-    drupal_add_css($css, 'inline');  
-  }
-  if ((variable_get('back_to_top_button_place', '1')) == 4 ) {
-    $css = "#backtotop { top: 10px; }";
-    drupal_add_css($css, 'inline');  
-  }
-  if ((variable_get('back_to_top_button_place', '1')) == 5 ) {
-    $css = "#backtotop { top: 10px; left: 10px; }";
-    drupal_add_css($css, 'inline');  
-  }
-  if ((variable_get('back_to_top_button_place', '1')) == 6 ) {
-    $css = "#backtotop { top: 10px; left: 50%; margin-left: -50px; }";
-    drupal_add_css($css, 'inline');  
-  }
-  if ((variable_get('back_to_top_button_place', '1')) == 7 ) {
-    $css = "#backtotop { top: 50%; }";
-    drupal_add_css($css, 'inline');  
-  }
-  if ((variable_get('back_to_top_button_place', '1')) == 8 ) {
-    $css = "#backtotop { top: 50%; left: 10px; }";
-    drupal_add_css($css, 'inline');  
-  }
-  if ((variable_get('back_to_top_button_place', '1')) == 9 ) {
-    $css = "#backtotop { top: 50%; left: 50%; margin-left: -50px; }";
-    drupal_add_css($css, 'inline');  
+  if (!variable_get('back_to_top_use_only_blocks', 'FALSE')) {
+
+    // Check variables and add placement
+    if ((variable_get('back_to_top_button_place', '1')) == 2 ) {
+      $css = "#backtotop { left: 10px; }";
+      drupal_add_css($css, 'inline');  
+    }
+    if ((variable_get('back_to_top_button_place', '1')) == 3 ) {
+      $css = "#backtotop { left: 50%; margin-left: -50px; }";
+      drupal_add_css($css, 'inline');  
+    }
+    if ((variable_get('back_to_top_button_place', '1')) == 4 ) {
+      $css = "#backtotop { top: 10px; }";
+      drupal_add_css($css, 'inline');  
+    }
+    if ((variable_get('back_to_top_button_place', '1')) == 5 ) {
+      $css = "#backtotop { top: 10px; left: 10px; }";
+      drupal_add_css($css, 'inline');  
+    }
+    if ((variable_get('back_to_top_button_place', '1')) == 6 ) {
+      $css = "#backtotop { top: 10px; left: 50%; margin-left: -50px; }";
+      drupal_add_css($css, 'inline');  
+    }
+    if ((variable_get('back_to_top_button_place', '1')) == 7 ) {
+      $css = "#backtotop { top: 50%; }";
+      drupal_add_css($css, 'inline');  
+    }
+    if ((variable_get('back_to_top_button_place', '1')) == 8 ) {
+      $css = "#backtotop { top: 50%; left: 10px; }";
+      drupal_add_css($css, 'inline');  
+    }
+    if ((variable_get('back_to_top_button_place', '1')) == 9 ) {
+      $css = "#backtotop { top: 50%; left: 50%; margin-left: -50px; }";
+      drupal_add_css($css, 'inline');  
+    }
   }
+
   // Check variables and add color from settings - this code could be done a bit nicer
   if (((variable_get('back_to_top_button_type', 'image')) == "text" ) && ((variable_get('back_to_top_bg_color', '#F7F7F7')) !== '#F7F7F7' )) {
     $setting = variable_get('back_to_top_bg_color', '#F7F7F7');
@@ -106,6 +150,7 @@ function back_to_top_init() {
     $css = "#backtotop { color: " . $setting . "; }";
     drupal_add_css($css, 'inline');  
   }
+
   // Add settings to js
   drupal_add_js(array('back_to_top' => $settings), 'setting');
 }
diff --git back_to_top_block.css back_to_top_block.css
new file mode 100644
index 0000000..3743da2
--- /dev/null
+++ back_to_top_block.css
@@ -0,0 +1,18 @@
+#backtotop {
+  background: url(backtotop.png) no-repeat center center;
+  cursor: pointer;
+  height: 70px;
+  text-indent:-9999px;
+  width: 70px;
+}
+
+#backtotop:hover {
+  opacity: 0.8;
+}
+
+<!--[if lte IE 6]>
+html {
+  overflow-x: auto;
+  overflow-y: hidden;
+}
+<![endif]-->
diff --git back_to_top_block.js back_to_top_block.js
new file mode 100644
index 0000000..927ba97
--- /dev/null
+++ back_to_top_block.js
@@ -0,0 +1,10 @@
+Drupal.behaviors.backtotop = {
+  attach: function(context) {
+      (function($) {
+      $(".block-back-to-top").append("<div id='backtotop'>"+Drupal.t("Back to Top")+"</div>");  
+      $('#backtotop').click(function() {
+        $('body,html').animate({scrollTop:0},1200,'easeOutQuart');
+      });
+    })(jQuery);
+  }
+};
diff --git back_to_top_text_block.css back_to_top_text_block.css
new file mode 100644
index 0000000..385bbfe
--- /dev/null
+++ back_to_top_text_block.css
@@ -0,0 +1,25 @@
+#backtotop {
+  background: #F7F7F7;
+  border: 1px solid #CCCCCC;
+  border-radius: 5px 5px 5px 5px;
+  color: #333333;
+  cursor: pointer;
+  height: 30px;
+  line-height: 30px;
+  padding: 5px;
+  text-align: center;
+  width: 100px;
+  -moz-border-radius: 5px;
+  -webkit-border-radius: 5px;
+}
+
+#backtotop:hover {
+  background: #EEEEEE;
+}
+
+<!--[if lte IE 6]>
+html {
+  overflow-x: auto;
+  overflow-y: hidden;
+}
+<![endif]-->
