diff --git a/lib/Target/X86/X86FastISel.cpp b/lib/Target/X86/X86FastISel.cpp
index 63444ca..6e23fe7 100644
--- a/lib/Target/X86/X86FastISel.cpp
+++ b/lib/Target/X86/X86FastISel.cpp
@@ -748,15 +748,6 @@
       return false;
   }
 
-  // Materialize callee address in a register. FIXME: GV address can be
-  // handled with a CALLpcrel32 instead.
-  unsigned CalleeOp = getRegForValue(Callee);
-  if (CalleeOp == 0) {
-    if (!isa<Constant>(Callee) || !X86SelectConstAddr(Callee, CalleeOp, true))
-      // Unhandled operand. Halt "fast" selection and bail.
-      return false;    
-  }
-
   // Handle only C and fastcc calling conventions for now.
   CallSite CS(CI);
   unsigned CC = CS.getCallingConv();
@@ -774,9 +765,21 @@
   // Handle *simple* calls for now.
   const Type *RetTy = CS.getType();
   MVT RetVT;
-  if (!isTypeLegal(RetTy, TLI, RetVT, true))
+  if (RetTy == Type::VoidTy)
+    RetVT = MVT::isVoid;
+  else if (!isTypeLegal(RetTy, TLI, RetVT, true))
     return false;
 
+  // Materialize callee address in a register. FIXME: GV address can be
+  // handled with a CALLpcrel32 instead.
+  unsigned CalleeOp = 0;
+  if (!isa<Constant>(Callee) || !X86SelectConstAddr(Callee, CalleeOp, true)) {
+    CalleeOp = getRegForValue(Callee);
+    if (CalleeOp == 0)
+      // Unhandled operand. Halt "fast" selection and bail.
+      return false;    
+  }
+
   // Allow calls which produce i1 results.
   bool AndToI1 = false;
   if (RetVT == MVT::i1) {
