diff --git a/src/pyplaml/puml_lexer.py b/src/pyplaml/puml_lexer.py
index 0c73f676cfd9e58d4c51d70c267071ecc2989758..77d9667c3b5d41d4b00b24147bbe6bf13e291fe3 100644
--- a/src/pyplaml/puml_lexer.py
+++ b/src/pyplaml/puml_lexer.py
@@ -172,7 +172,11 @@ class PUMLexer(object):
 
     @staticmethod
     def t_SKINPARAM(t):
-        r"""skinparam\s+.+"""
+        r"""skinparam\s+(\w+)\s+(\w+)?"""
+        target = t.lexer.lexmatch.group(32)
+        value = t.lexer.lexmatch.group(33)
+
+        t.value = (target, value)
         return t
 
     def t_IDENTIFIER(self, t):
diff --git a/src/pyplaml/puml_parser.py b/src/pyplaml/puml_parser.py
index cf15ebcf05be4a05910f7ff5355d9e36d68ddf7d..6a4ced13d41faed349ed305f470a17e5d6d2762f 100644
--- a/src/pyplaml/puml_parser.py
+++ b/src/pyplaml/puml_parser.py
@@ -362,7 +362,12 @@ class PUMLParser(object):
         """
         skinparam   : SKINPARAM
         """
-        skinparam = p[1].split(" ")[1::]
+
+    @staticmethod
+    def p_skinparam_with_body(p):
+        """
+        skinparam   : SKINPARAM IN_BRACKETS_LINES
+        """
 
     @staticmethod
     def p_error(p):