diff --git a/lib/Less/Node/Rule.php b/lib/Less/Node/Rule.php
index <HASH>..<HASH> 100755
--- a/lib/Less/Node/Rule.php
+++ b/lib/Less/Node/Rule.php
@@ -9,6 +9,7 @@ class Rule
 	public $important;
 	public $index;
 	public $inline;
+	public $variable;
 
     public function __construct($name, $value, $important = null, $index = null, $inline = false)
     {
diff --git a/lib/Less/Node/Ruleset.php b/lib/Less/Node/Ruleset.php
index <HASH>..<HASH> 100755
--- a/lib/Less/Node/Ruleset.php
+++ b/lib/Less/Node/Ruleset.php
@@ -68,6 +68,20 @@ class Ruleset
 			$rule = $ruleset->rules[$i];
 			if( $rule instanceof \Less\Node\Mixin\Call ){
 				$rules = $rule->compile($env);
+
+				$temp = array();
+				foreach($rules as $r){
+					if( ($r instanceof \Less\Node\Rule) && $r->variable ){
+						// do not pollute the scope if the variable is
+						// already there. consider returning false here
+						// but we need a way to "return" variable from mixins
+						if( !$ruleset->variable($r->name) ){
+							$temp[] = $r;
+						}
+					}
+				}
+				$rules = $temp;
+
 				array_splice($ruleset->rules, $i, 1, $rules);
 				$i += count($rules)-1;
 				$ruleset->resetCache();
do not pollute the parent scope after mixin call if variable is defined