diff --git a/src/common/argscheck.js b/src/common/argscheck.js
index 07a2297..06d465e 100644
--- a/src/common/argscheck.js
+++ b/src/common/argscheck.js
@@ -33,7 +33,7 @@
 };
 
 function extractParamName (callee, argIndex) {
-    return (/.*?\((.*?)\)/).exec(callee)[1].split(', ')[argIndex];
+    return (/\(\s*([^)]*?)\s*\)/).exec(callee)[1].split(/\s*,\s*/)[argIndex];
 }
 
 function checkArgs (spec, functionName, args, opt_callee) {
diff --git a/test/test.argscheck.js b/test/test.argscheck.js
index 7f4392c..60fd02f 100644
--- a/test/test.argscheck.js
+++ b/test/test.argscheck.js
@@ -78,4 +78,22 @@
         argscheck.enableChecks = false;
         testFunc();
     });
+    it('Test#012 : should be able to extract from all kinds of parameter formats', () => {
+        const check = args => argscheck.checkArgs('ss', 'testFn', args);
+
+        function sparse (
+            a,
+            b
+        ) { check(arguments); }
+        expect(() => sparse(null, '')).toThrowError(/parameter "a"/);
+        expect(() => sparse('', null)).toThrowError(/parameter "b"/);
+
+        // eslint-disable-next-line comma-spacing
+        function dense (a,b) { check(arguments); }
+        expect(() => dense('', null)).toThrowError(/parameter "b"/);
+
+        // eslint-disable-next-line comma-spacing, space-in-parens
+        function funky ( a ,b ) { check(arguments); }
+        expect(() => funky(null, '')).toThrowError(/parameter "a"/);
+    });
 });
