Index: api.c
===================================================================
--- api.c	(revision 234)
+++ api.c	(working copy)
@@ -1,6 +1,10 @@
 
 #include "yaml_private.h"
 
+#include "config.h"
+
+typedef unsigned char byte;
+
 /*
  * Get the library version.
  */
@@ -78,11 +82,11 @@
 
     if (!new_start) return 0;
 
-    memset(new_start + (*end - *start), 0, *end - *start);
+    memset((byte*)new_start + (*end - *start), 0, *end - *start);
 
-    *pointer = new_start + (*pointer - *start);
-    *end = new_start + (*end - *start)*2;
-    *start = new_start;
+    *pointer = (byte*)new_start + (*pointer - *start);
+    *end = (byte*)new_start + (*end - *start)*2;
+    *start = (byte*)new_start;
 
     return 1;
 }
@@ -117,13 +121,13 @@
 YAML_DECLARE(int)
 yaml_stack_extend(void **start, void **top, void **end)
 {
-    void *new_start = yaml_realloc(*start, (*end - *start)*2);
+    void *new_start = yaml_realloc((byte*)*start, ((byte*)*end - (byte*)*start)*2);
 
     if (!new_start) return 0;
 
-    *top = new_start + (*top - *start);
-    *end = new_start + (*end - *start)*2;
-    *start = new_start;
+    *top = (byte*)new_start + ((byte*)*top - (byte*)*start);
+    *end = (byte*)new_start + ((byte*)*end - (byte*)*start)*2;
+    *start = (byte*)new_start;
 
     return 1;
 }
@@ -138,23 +142,23 @@
     /* Check if we need to resize the queue. */
 
     if (*start == *head && *tail == *end) {
-        void *new_start = yaml_realloc(*start, (*end - *start)*2);
+        void *new_start = yaml_realloc((byte*)*start, ((byte*)*end - (byte*)*start)*2);
 
         if (!new_start) return 0;
 
-        *head = new_start + (*head - *start);
-        *tail = new_start + (*tail - *start);
-        *end = new_start + (*end - *start)*2;
-        *start = new_start;
+        *head = (byte*)new_start + ((byte*)*head - (byte*)*start);
+        *tail = (byte*)new_start + ((byte*)*tail - (byte*)*start);
+        *end = (byte*)new_start + ((byte*)*end - (byte*)*start)*2;
+        *start = (byte*)new_start;
     }
 
     /* Check if we need to move the queue at the beginning of the buffer. */
 
     if (*tail == *end) {
         if (*head != *tail) {
-            memmove(*start, *head, *tail - *head);
+            memmove((byte*)*start, (byte*)*head, (byte*)*tail - (byte*)*head);
         }
-        *tail -= *head - *start;
+        (byte*)*tail -= (byte*)*head - (byte*)*start;
         *head = *start;
     }
 
Index: scanner.c
===================================================================
--- scanner.c	(revision 234)
+++ scanner.c	(working copy)
@@ -1118,9 +1118,17 @@
 
     if (parser->simple_key_allowed)
     {
-        yaml_simple_key_t simple_key = { 1, required,
+		/*
+        yaml_simple_key_t simple_key = {
+			1,
+			required,
             parser->tokens_parsed + parser->tokens.tail - parser->tokens.head,
-            parser->mark };
+            parser->mark };*/
+        yaml_simple_key_t simple_key;
+		simple_key.possible = 1;
+		simple_key.required = required;
+		simple_key.token_number = parser->tokens_parsed + parser->tokens.tail - parser->tokens.head;
+		simple_key.mark = parser->mark;
 
         if (!yaml_parser_remove_simple_key(parser)) return 0;
 
