diff --git a/src/Block.php b/src/Block.php
index <HASH>..<HASH> 100644
--- a/src/Block.php
+++ b/src/Block.php
@@ -62,4 +62,8 @@ class Block
      * @var array
      */
     public $children;
+    /**
+     * @var \Leafo\ScssPhp\Block
+     */
+    public $selfParent;
 }
diff --git a/src/Parser.php b/src/Parser.php
index <HASH>..<HASH> 100644
--- a/src/Parser.php
+++ b/src/Parser.php
@@ -763,6 +763,11 @@ class Parser
             $this->throwParseError('unexpected }');
         }
 
+        if ($block->type == Type::T_AT_ROOT) {
+            // keeps the parent in case of self selector &
+            $block->selfParent = $block->parent;
+        }
+
         $this->env = $block->parent;
         unset($block->parent);
Appending properties to Block to manage self parent on at root