diff --git a/libacc/acc.cpp b/libacc/acc.cpp
index 483a1ac..6e19503 100644
--- a/libacc/acc.cpp
+++ b/libacc/acc.cpp
@@ -4891,11 +4891,15 @@
                     int argCount = 0;
                     for (Type* pP = pDecl->pTail; pP; pP = pP->pTail) {
                         Type* pArg = pP->pHead;
-                        addLocalSymbol(pArg);
+                        if (pArg->id) {
+                            addLocalSymbol(pArg);
+                        }
                         /* read param name and compute offset */
                         size_t alignment = pGen->stackAlignmentOf(pArg);
                         a = (a + alignment - 1) & ~ (alignment-1);
-                        VI(pArg->id)->pAddress = (void*) a;
+                        if (pArg->id) {
+                            VI(pArg->id)->pAddress = (void*) a;
+                        }
                         a = a + pGen->stackSizeOf(pArg);
                         argCount++;
                     }
diff --git a/libacc/tests/data/funcargs.c b/libacc/tests/data/funcargs.c
new file mode 100644
index 0000000..1dce226
--- /dev/null
+++ b/libacc/tests/data/funcargs.c
@@ -0,0 +1,8 @@
+int f(int a,int, int c) {
+    return a + c;
+}
+
+int main() {
+    return f(1,2,3);
+}
+
diff --git a/libacc/tests/test.py b/libacc/tests/test.py
index ed20334..bef9fc6 100644
--- a/libacc/tests/test.py
+++ b/libacc/tests/test.py
@@ -439,6 +439,11 @@
 result: 3
 ""","""""")
 
+    def testFuncArgs(self):
+        self.compileCheck(["-R", "data/funcargs.c"], """Executing compiled code:
+result: 4
+""","""""")
+
 def main():
     parseArgv()
     if not outputCanRun():
