diff --git a/community_tags.info b/community_tags.info
index 2896982..9832951 100644
--- a/community_tags.info
+++ b/community_tags.info
@@ -1,6 +1,7 @@
 name = Community Tags
 description = "Allows users to 'tag' other users' content. Weighted tag lists or 'tag clouds' are generated for each piece of content to show the popularity of tags."
 dependencies[] = taxonomy
+dependencies[] = tagadelic
 package = Taxonomy
 configure = admin/config/content/community-tags
 core=7.x
diff --git a/community_tags.js b/community_tags.js
index 605c5fd..ee19e18 100644
--- a/community_tags.js
+++ b/community_tags.js
@@ -62,7 +62,7 @@
           // Clear field and focus it.
           textfield.val('').focus();
         };
-        var button = $('<input type="button" class="form-button" value="'+ Drupal.communityTags.checkPlain(o.add) +'" />').click(addHandler);
+        var button = $('<input type="button" class="form-submit" value="'+ Drupal.communityTags.checkPlain(o.add) +'" />').click(addHandler);
         $(this.form).submit(function () { addHandler(); return false; });
 
         // Prepare the delete Ajax handler.
diff --git a/community_tags.module b/community_tags.module
index aad8c6a..98ded7d 100644
--- a/community_tags.module
+++ b/community_tags.module
@@ -535,9 +535,12 @@ function _community_tags_display_handler_links($type = 'global', $limit = NULL,
 function _community_tags_display_handler_tagadelic($type = 'global', $limit = NULL, $arg1 = NULL, $arg2 = NULL) {
   $tags = _community_tags_get_tag_result($type, $limit, $arg1, $arg2);
   $tags = $tags->fetchAllAssoc('tid');
-  $weighted_tags = tagadelic_build_weighted_tags($tags);
-  $sorted_tags = tagadelic_sort_tags($weighted_tags);
-  return theme('community_tags', array('tags' => $sorted_tags));
+  foreach($tags as $tag_object) {
+    $weighted_tags[] = new TagadelicTag($tag_object->name, $tag_object->name, $tag_object->count);
+  }
+  $tagadelic_cloud = new TagadelicCloud("community_tags_cloud", $weighted_tags);
+
+  return theme('community_tags', array('tags' => $tagadelic_cloud));
 }
 
 /**
@@ -548,9 +551,6 @@ function _community_tags_display_handler_tagadelic($type = 'global', $limit = NU
  */
 function _community_tags_node_view($node, $inline = TRUE) {
   global $user;
-  if (is_numeric($node)) {
-    $node = node_load($node);
-  }
 
   if (!$inline) {
     drupal_set_title($node->title);
@@ -569,7 +569,7 @@ function _community_tags_node_view($node, $inline = TRUE) {
     $tags = community_tags_get_user_node_tags($user->uid, $node->nid, $vid);
 
     $display_handler = _community_tags_get_display_handler($vid, $node->type, $inline);
-    $cloud = call_user_func($display_handler['fn'], 'node', NULL, $node->nid, $vid);
+    $cloud = call_user_func_array($display_handler['fn'], array('node', NULL, &$node->nid, &$vid));
 
 
     if (!count($tags)) {
@@ -605,7 +605,13 @@ function _community_tags_node_view($node, $inline = TRUE) {
  */
 function theme_community_tags($variables) {
   $tags = $variables['tags'];
-  return '<div class="cloud">' . (count($tags) ? theme('tagadelic_weighted', array('terms' => $tags)) : t('None')) . '</div>';
+  $output = "";
+  if(count($tags)){
+    foreach($tags->get_tags() as $tag) {
+      $output .= $tag;
+    }
+  }
+  return '<div class="cloud">' . (count($tags) ? $output : t('None')) . '</div>';
 }
 
 /**
