Protect the optional IM disabling calls with #ifdef:s
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f5a016a..a3e0931 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -303,6 +303,9 @@
   # FLTK STR #xxxx
   check_cxx_source_compiles("#include <FL/Fl.H>\nint main(int c, char** v) { Fl::add_xhandler(NULL, NULL); return 0; }" HAVE_FLTK_XHANDLERS)
 
+  # FLTK STR #xxxx
+  check_cxx_source_compiles("#include <FL/Fl.H>\nint main(int c, char** v) { Fl::disable_im(); return 0; }" HAVE_FLTK_IM)
+
   set(CMAKE_REQUIRED_INCLUDES)
   set(CMAKE_REQUIRED_LIBRARIES)
 endif()
diff --git a/config.h.in b/config.h.in
index bac626b..a50e723 100644
--- a/config.h.in
+++ b/config.h.in
@@ -18,6 +18,7 @@
 #cmakedefine HAVE_FLTK_WORK_AREA
 #cmakedefine HAVE_FLTK_ICONS
 #cmakedefine HAVE_FLTK_XHANDLERS
+#cmakedefine HAVE_FLTK_IM
 #cmakedefine HAVE_ACTIVE_DESKTOP_H
 #cmakedefine HAVE_ACTIVE_DESKTOP_L
 #cmakedefine ENABLE_NLS 1
diff --git a/vncviewer/Viewport.cxx b/vncviewer/Viewport.cxx
index ec48b02..595a4aa 100644
--- a/vncviewer/Viewport.cxx
+++ b/vncviewer/Viewport.cxx
@@ -410,7 +410,9 @@
     return 1;
 
   case FL_FOCUS:
+#ifdef HAVE_FLTK_IM
     Fl::disable_im();
+#endif
     // Yes, we would like some focus please!
     return 1;
 
@@ -419,7 +421,9 @@
     // sense (e.g. Alt+Tab where we only see the Alt press)
     while (!downKeySym.empty())
       handleKeyRelease(downKeySym.begin()->first);
+#ifdef HAVE_FLTK_IM
     Fl::enable_im();
+#endif
     return 1;
 
   case FL_KEYDOWN: