  idaman void ida_export qatexit(void (idaapi *func)(void));
  
  /*==================================================*/
-@@ -1593,6 +1605,7 @@
- 
- // Convert a unicode character to 1 byte character. If failed, return 0.
- uchar wchar2char(wchar16_t wc);
-+#endif // SWIG
- 
- idaman bool ida_export u2cstr(const wchar16_t *in, qstring *out, int nsyms=-1); // unicode -> char
+@@ -1598,6 +1610,7 @@
  idaman bool ida_export c2ustr(const char *in, qwstring *out, int nsyms=-1);   // char -> unicode
+ // utf8 -> 16bit unicode
+ idaman int ida_export utf8_unicode(const char *in, wchar16_t *out, size_t outsize);
++#endif // SWIG
+ 
+ // Old Visual C++ compilers were not defining the following:
+ #ifdef __NT__
 diff -ur idasdk-versions/5.3/include/typeinf.hpp swigsdk-versions/5.3/include/typeinf.hpp
 --- idasdk-versions/5.3/include/typeinf.hpp	2008-05-07 15:23:00.000000000 +0300
 +++ swigsdk-versions/5.3/include/typeinf.hpp	2008-09-30 20:51:08.000000000 +0300

   void unhide_if_necessary(ea_t ea);
   void hide_if_necessary(void);
 protected:
@@ -117,7 +122,9 @@
 class location_t : public curloc
 {
   typedef curloc inherited;

 };
 
 inline bool is_func_entry(const func_t *pfn) { return pfn != NULL && (pfn->flags & FUNC_TAIL) == 0; }
diff -ur idasdk-versions/5.3/include/gdl.hpp swigsdk-versions/5.3/include/gdl.hpp
--- idasdk-versions/5.3/include/gdl.hpp	2008-05-04 21:36:00.000000000 +0300
+++ swigsdk-versions/5.3/include/gdl.hpp	2008-10-09 19:42:47.000000000 +0300
@@ -39,10 +39,14 @@
   fcb_error,     // block passes execution past the function end
 };
 
+#ifndef SWIG
 #define DECLARE_HELPER(decl)                                        \
 decl node_iterator &ida_export node_iterator_goup(node_iterator *); \
 decl void ida_export create_qflow_chart(qflow_chart_t &);           \
 decl fc_block_type_t ida_export fc_calc_block_type(const qflow_chart_t &, size_t);
+#else
+#define DECLARE_HELPER(decl)
+#endif // SWIG
 
 DECLARE_HELPER(idaman)
 
@@ -380,8 +384,10 @@
   area_t bounds;
   func_t *pfn;
   int flags;
+#ifndef SWIG
 #define FC_PRINT 0x0001 // print names
 #define FC_NOEXT 0x0002 // do not compute external blocks
+#endif // SWIG
   blocks_t blocks;
   bn_t bn;              // block numbers
   int nproper;          // number of basic blocks belonging to the specified area
diff -ur idasdk-versions/5.3/include/ida.hpp swigsdk-versions/5.3/include/ida.hpp
--- idasdk-versions/5.3/include/ida.hpp	2008-05-04 21:36:00.000000000 +0300
+++ swigsdk-versions/5.3/include/ida.hpp	2008-09-30 18:23:09.000000000 +0300
