diff --git a/association/plugins/SparklinePlugin/SparklinePlugin.js b/association/plugins/SparklinePlugin/SparklinePlugin.js
index 1aff2d2..13c634c 100644
--- a/association/plugins/SparklinePlugin/SparklinePlugin.js
+++ b/association/plugins/SparklinePlugin/SparklinePlugin.js
@@ -1,12 +1,12 @@
 /***
 |''Name''|SparklinePlugin|
 |''Description''|provides support for [[sparklines|http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0001OR&topic_id=1]]|
-|''Version''|1.0.0|
+|''Version''|2.0.0|
 |''Status''|stable|
 |''Source''|http://www.tiddlywiki.com/coreplugins.html#SparklinePlugin|
 |''~CodeRepository:''|http://svn.tiddlywiki.org/Trunk/association/plugins/SparklinePlugin/SparklinePlugin.js |
 |''License''|[[BSD open source license]]|
-|''~CoreVersion''|2.3.0|
+|''~CoreVersion''|2.4.1|
 |''Feedback''|[[TiddlyWiki community|http://groups.google.com/group/TiddlyWiki]] |
 |''Keywords''|visualization|
 !Usage
@@ -29,11 +29,21 @@ version.extensions.SparklinePlugin = {installed:true};
 //--
 
 config.macros.sparkline = {};
+
+config.macros.sparkline.byNum = function(a,b)
+{
+return parseInt(b)-parseInt(a);
+};
 config.macros.sparkline.handler = function(place,macroName,params)
 {
 	var data = [];
-	var min = 0;
-	var max = 0;
+	var min;
+	var max;
+	var highest = [];
+	var boxHeight = 100;
+	var tickWidth = 10;
+	var tickBorderWidth = 0;
+	var datalength = 0;
 	var v;
 	for(var t=0; t<params.length; t++) {
 		v = parseInt(params[t]);
@@ -43,25 +53,33 @@ config.macros.sparkline.handler = function(place,macroName,params)
 			max = v;
 		data.push(v);
 	}
-	if(data.length < 1)
+	if(data.length < 1){
 		return;
-	var box = createTiddlyElement(place,"span",null,"sparkline",String.fromCharCode(160));
+	}else{
+		//highest.clear();
+		datalength += data.length;
+		for (var i = 0, item; item = data[i]; i++ ){
+			highest[i] = item;
+		}
+		highest.sort(config.macros.sparkline.byNum);
+	}
+
+	var box = createTiddlyElement(place,"span",null,"sparkline",'');
 	box.title = data.join(",");
-	var w = box.offsetWidth;
-	var h = box.offsetHeight;
-	box.style.paddingRight = (data.length * 2 - w) + "px";
+	box.style.display = 'block';
+	box.style.width = datalength * tickWidth+"px";
+	box.style.height = boxHeight+"px";
 	box.style.position = "relative";
-	for(var d=0; d<data.length; d++) {
+
+	for( var i = 0 ; i < datalength ; i++ ) {
 		var tick = document.createElement("img");
-		tick.border = 0;
+		tick.style.border = tickBorderWidth;
 		tick.className = "sparktick";
-		tick.style.position = "absolute";
 		tick.src = "data:image/gif,GIF89a%01%00%01%00%91%FF%00%FF%FF%FF%00%00%00%C0%C0%C0%00%00%00!%F9%04%01%00%00%02%00%2C%00%00%00%00%01%00%01%00%40%02%02T%01%00%3B";
-		tick.style.left = d*2 + "px";
-		tick.style.width = "2px";
-		v = Math.floor(((data[d] - min)/(max-min)) * h);
-		tick.style.top = (h-v) + "px";
-		tick.style.height = v + "px";
+
+		tick.style.width = tickWidth+'px';
+		tick.style.height = (isNaN((data[i]/highest[0])*boxHeight)?boxHeight:parseInt((data[i]/highest[0])*boxHeight)) +"px";
+		tick.style.float = 'left';
 		box.appendChild(tick);
 	}
 };
@@ -69,3 +87,15 @@ config.macros.sparkline.handler = function(place,macroName,params)
 
 }
 //}}}
+
+//{{{
+// Add clear function
+Array.prototype.clear = function()
+{
+        for(var i=0, item; item = this[i]; i++) {
+                delete item;
+        }
+	if(this.length > 0){return -1;}
+	else{return 0;}
+};
+//}}}
\ No newline at end of file

