diff --git a/ext/fox16/FXRuby.cpp b/ext/fox16/FXRuby.cpp
index f2e896980c8b196764a93fa59eb959e762e104dc..4ac2f99d9a556d6acbcde00b7b8c1af762971e77 100644
--- a/ext/fox16/FXRuby.cpp
+++ b/ext/fox16/FXRuby.cpp
@@ -53,6 +53,7 @@ extern "C" {
 
 #endif /* RUBY_1_9 */
 
+
 // Opaque type declaration from SWIG runtime
 struct swig_type_info;
 
@@ -173,14 +174,14 @@ FXInputHandle FXRbGetReadFileHandle(VALUE obj) {
 // Returns an FXInputHandle for this Ruby file object
 FXInputHandle FXRbGetWriteFileHandle(VALUE obj) {
   int fd = -1;
-#ifdef RUBY_1_9
+#if defined(RUBINIUS)
+  VALUE vwrite = rb_intern("@write");
+  if(rb_ivar_defined(obj, vwrite)) obj = rb_ivar_get(obj, vwrite);
+#elif defined(RUBY_1_9)
   rb_io_t *fptr;
   GetOpenFile(obj, fptr);
   VALUE wrio = fptr->tied_io_for_writing;
   if(wrio) obj = wrio;
-#elif defined(RBX_CAPI_RUBY_H)
-  VALUE vwrite = rb_intern("@write");
-  if(rb_ivar_defined(obj, vwrite)) obj = rb_ivar_get(obj, vwrite);
 #else
   OpenFile *fptr;
   GetOpenFile(obj, fptr);