diff --git a/ini.c b/ini.c
index 15546e9..24295f5 100644
--- a/ini.c
+++ b/ini.c
@@ -13,7 +13,10 @@
 
 #include "ini.h"
 
-#define MAX_LINE 200
+#if !INI_USE_STACK
+#include <stdlib.h>
+#endif
+
 #define MAX_SECTION 50
 #define MAX_NAME 50
 
@@ -62,7 +65,11 @@
                    void* user)
 {
     /* Uses a fair bit of stack (use heap instead if you need to) */
-    char line[MAX_LINE];
+#if INI_USE_STACK
+    char line[INI_MAX_LINE];
+#else
+    char* line;
+#endif
     char section[MAX_SECTION] = "";
     char prev_name[MAX_NAME] = "";
 
@@ -73,8 +80,15 @@
     int lineno = 0;
     int error = 0;
 
+#if !INI_USE_STACK
+    line = (char*)malloc(INI_MAX_LINE);
+    if (!line) {
+        return -2;
+    }
+#endif
+
     /* Scan through file line by line */
-    while (fgets(line, sizeof(line), file) != NULL) {
+    while (fgets(line, INI_MAX_LINE, file) != NULL) {
         lineno++;
 
         start = line;
@@ -138,6 +152,10 @@
         }
     }
 
+#if !INI_USE_STACK
+    free(line);
+#endif
+
     return error;
 }
 
diff --git a/ini.h b/ini.h
index f337a6a..4ad8c64 100644
--- a/ini.h
+++ b/ini.h
@@ -27,7 +27,8 @@
    of handler call). Handler should return nonzero on success, zero on error.
 
    Returns 0 on success, line number of first error on parse error (doesn't
-   stop on first error), or -1 on file open error.
+   stop on first error), -1 on file open error, or -2 on memory allocation
+   error (only when INI_USE_STACK is zero).
 */
 int ini_parse(const char* filename,
               int (*handler)(void* user, const char* section,
@@ -54,6 +55,16 @@
 #define INI_ALLOW_BOM 1
 #endif
 
+/* Nonzero to use stack, zero to use heap (malloc/free). */
+#ifndef INI_USE_STACK
+#define INI_USE_STACK 1
+#endif
+
+/* Maximum line length for any line in INI file. */
+#ifndef INI_MAX_LINE
+#define INI_MAX_LINE 200
+#endif
+
 #ifdef __cplusplus
 }
 #endif
