+#ifndef DRAW_WINS_H
+#define DRAW_WINS_H
+
 void draw_with_linebreaks (struct Win *, char *, uint16_t);
 void draw_text_from_bottom (struct Win *, char *);
 void draw_log_win (struct Win *);
 void draw_map_win (struct Win *);
 void draw_info_win (struct Win *);
 void draw_keys_win (struct Win *);
+
+#endif
 
+#ifndef KEYBINDINGS_H
+
 struct KeyBinding {
   char * name;
   uint16_t key; };
 char * get_keyname(uint16_t);
 void keyswin_mod_key (struct World *, struct WinMeta *);
 void keyswin_move_selection (struct World *, char);
+
+#endif
 
+#ifndef READWRITE_H
+#define READWRITE_H
+
 uint16_t read_uint16_bigendian(FILE * file);
 void write_uint16_bigendian(uint16_t x, FILE * file);
 uint32_t read_uint32_bigendian(FILE * file);
 void write_uint32_bigendian(uint32_t x, FILE * file);
 
+#endif
 
+#ifndef ROGUELIKE_H
+#define ROGUELIKE_H
+
 struct World {
   char interactive;
   struct KeyBinding * keybindings;
 void growshrink_active_window (struct WinMeta *, char);
 void map_scroll (struct Map *, char);
 unsigned char meta_keys(int, struct World *, struct WinMeta *, struct Win *, struct Win *, struct Win *, struct Win *);
+
+#endif
 
+#ifndef WINDOWS_H
+#define WINDOWS_H
+
 #include "yx_uint16.h"
 
 struct Frame {
 extern void cycle_active_win (struct WinMeta *, char);
 extern void shift_active_win (struct WinMeta *, char);
 extern void reset_pad_offset (struct WinMeta *, uint16_t);
+
+#endif
 
+#ifndef YX_UINT16_H
+#define YX_UINT16_H
+
 struct yx_uint16 {
   uint16_t y;
   uint16_t x; };
 
 extern char yx_uint16_cmp (struct yx_uint16, struct yx_uint16);
 
+#endif