1diff -urN guichan-0.8.1.orig/include/guichan/allegro/allegrographics.hpp guichan-0.8.1/include/guichan/allegro/allegrographics.hpp
2--- guichan-0.8.1.orig/include/guichan/allegro/allegrographics.hpp	2009-01-04 08:40:19.410738242 +0100
3+++ guichan-0.8.1/include/guichan/allegro/allegrographics.hpp	2009-01-04 09:45:18.583571894 +0100
4@@ -61,8 +61,10 @@
5     {
6     public:
7 
8+#ifndef __HAIKU__
9         // Needed so that drawImage(gcn::Image *, int, int) is visible.
10         using Graphics::drawImage;
11+#endif
12 
13         /**
14          * Constructor.
15diff -urN guichan-0.8.1.orig/include/guichan/graphics.hpp guichan-0.8.1/include/guichan/graphics.hpp
16--- guichan-0.8.1.orig/include/guichan/graphics.hpp	2009-01-04 08:40:19.414754836 +0100
17+++ guichan-0.8.1/include/guichan/graphics.hpp	2009-01-04 08:40:46.026740200 +0100
18@@ -46,6 +46,7 @@
19 
20 #include <iosfwd>
21 #include <stack>
22+#include <string>
23 
24 #include "guichan/cliprectangle.hpp"
25 #include "guichan/platform.hpp"
26diff -urN guichan-0.8.1.orig/include/guichan/opengl/openglgraphics.hpp guichan-0.8.1/include/guichan/opengl/openglgraphics.hpp
27--- guichan-0.8.1.orig/include/guichan/opengl/openglgraphics.hpp	2009-01-04 08:40:19.362739150 +0100
28+++ guichan-0.8.1/include/guichan/opengl/openglgraphics.hpp	2009-01-04 09:44:49.690740883 +0100
29@@ -57,8 +57,10 @@
30     {
31     public:
32 
33+#ifndef __HAIKU__
34         // Needed so that drawImage(gcn::Image *, int, int) is visible.
35         using Graphics::drawImage;
36+#endif
37 
38         /**
39          * Constructor.
40diff -urN guichan-0.8.1.orig/include/guichan/sdl/sdlgraphics.hpp guichan-0.8.1/include/guichan/sdl/sdlgraphics.hpp
41--- guichan-0.8.1.orig/include/guichan/sdl/sdlgraphics.hpp	2009-01-04 08:40:19.198743050 +0100
42+++ guichan-0.8.1/include/guichan/sdl/sdlgraphics.hpp	2009-01-04 09:45:40.823780346 +0100
43@@ -62,8 +62,10 @@
44     {
45     public:
46 
47+#ifndef __HAIKU__
48         // Needed so that drawImage(gcn::Image *, int, int) is visible.
49         using Graphics::drawImage;
50+#endif
51 
52         /**
53          * Constructor.
54diff -urN guichan-0.8.1.orig/src/focushandler.cpp guichan-0.8.1/src/focushandler.cpp
55--- guichan-0.8.1.orig/src/focushandler.cpp	2009-01-04 08:40:19.042743848 +0100
56+++ guichan-0.8.1/src/focushandler.cpp	2009-01-04 10:01:18.618746470 +0100
57@@ -94,7 +94,7 @@
58         
59         if (oldFocused != widget)
60         {
61-            mFocusedWidget = mWidgets.at(toBeFocusedIndex);
62+            mFocusedWidget = mWidgets[toBeFocusedIndex];
63             
64             if (oldFocused != NULL)
65             {
66@@ -102,7 +102,7 @@
67                 distributeFocusLostEvent(focusEvent);
68             }
69             
70-            Event focusEvent(mWidgets.at(toBeFocusedIndex));
71+            Event focusEvent(mWidgets[toBeFocusedIndex]);
72             distributeFocusGainedEvent(focusEvent);
73         }        
74     }
75@@ -203,11 +203,11 @@
76                 return;
77             }
78         }
79-        while (!mWidgets.at(focusedWidget)->isFocusable());
80+        while (!mWidgets[focusedWidget]->isFocusable());
81 
82         if (focusedWidget >= 0)
83         {
84-            mFocusedWidget = mWidgets.at(focusedWidget);
85+            mFocusedWidget = mWidgets[focusedWidget];
86 
87             Event focusEvent(mFocusedWidget);
88             distributeFocusGainedEvent(focusEvent);
89@@ -215,7 +215,7 @@
90 
91         if (focused >= 0)
92         {
93-            Event focusEvent(mWidgets.at(focused));
94+            Event focusEvent(mWidgets[focused]);
95             distributeFocusLostEvent(focusEvent);
96         }
97     }
98@@ -264,18 +264,18 @@
99                 return;
100             }
101         }
102-        while (!mWidgets.at(focusedWidget)->isFocusable());
103+        while (!mWidgets[focusedWidget]->isFocusable());
104 
105         if (focusedWidget >= 0)
106         {
107-            mFocusedWidget = mWidgets.at(focusedWidget);
108+            mFocusedWidget = mWidgets[focusedWidget];
109             Event focusEvent(mFocusedWidget);
110             distributeFocusGainedEvent(focusEvent);
111         }
112 
113         if (focused >= 0)
114         {
115-            Event focusEvent(mWidgets.at(focused));
116+            Event focusEvent(mWidgets[focused]);
117             distributeFocusLostEvent(focusEvent);
118         }
119     }
120@@ -404,10 +404,10 @@
121                 return;
122             }
123 
124-            if (mWidgets.at(focusedWidget)->isFocusable() &&
125-                mWidgets.at(focusedWidget)->isTabInEnabled() &&
126+            if (mWidgets[focusedWidget]->isFocusable() &&
127+                mWidgets[focusedWidget]->isTabInEnabled() &&
128                 (mModalFocusedWidget == NULL ||
129-                 mWidgets.at(focusedWidget)->isModalFocused()))
130+                 mWidgets[focusedWidget]->isModalFocused()))
131             {
132                 done = true;
133             }
134@@ -416,14 +416,14 @@
135 
136         if (focusedWidget >= 0)
137         {
138-            mFocusedWidget = mWidgets.at(focusedWidget);
139+            mFocusedWidget = mWidgets[focusedWidget];
140             Event focusEvent(mFocusedWidget);
141             distributeFocusGainedEvent(focusEvent);
142         }
143 
144         if (focused >= 0)
145         {
146-            Event focusEvent(mWidgets.at(focused));
147+            Event focusEvent(mWidgets[focused]);
148             distributeFocusLostEvent(focusEvent);
149         }
150     }
151@@ -481,10 +481,10 @@
152                 return;
153             }
154 
155-            if (mWidgets.at(focusedWidget)->isFocusable() &&
156-                mWidgets.at(focusedWidget)->isTabInEnabled() &&
157+            if (mWidgets[focusedWidget]->isFocusable() &&
158+                mWidgets[focusedWidget]->isTabInEnabled() &&
159                 (mModalFocusedWidget == NULL ||
160-                 mWidgets.at(focusedWidget)->isModalFocused()))
161+                 mWidgets[focusedWidget]->isModalFocused()))
162             {
163                 done = true;
164             }
165@@ -493,14 +493,14 @@
166 
167         if (focusedWidget >= 0)
168         {
169-            mFocusedWidget = mWidgets.at(focusedWidget);
170+            mFocusedWidget = mWidgets[focusedWidget];
171             Event focusEvent(mFocusedWidget);
172             distributeFocusGainedEvent(focusEvent);
173         }
174 
175         if (focused >= 0)
176         {
177-            Event focusEvent(mWidgets.at(focused));
178+            Event focusEvent(mWidgets[focused]);
179             distributeFocusLostEvent(focusEvent);
180         }
181     }
182