diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp
index 857fdfe..c83e6d0 100644
--- a/lib/Target/X86/X86ISelLowering.cpp
+++ b/lib/Target/X86/X86ISelLowering.cpp
@@ -521,6 +521,17 @@
     Chain = DAG.getNode(X86ISD::CALL, NodeTys, Ops);
     SDOperand InFlag = Chain.getValue(1);
 
+    NodeTys.clear();
+    NodeTys.push_back(MVT::Other);   // Returns a chain
+    NodeTys.push_back(MVT::Flag);    // Returns a flag for retval copy to use.
+    Ops.clear();
+    Ops.push_back(Chain);
+    Ops.push_back(DAG.getConstant(NumBytes, getPointerTy()));
+    Ops.push_back(DAG.getConstant(0, getPointerTy()));
+    Ops.push_back(InFlag);
+    Chain = DAG.getNode(ISD::CALLSEQ_END, NodeTys, Ops);
+    InFlag = Chain.getValue(1);
+    
     SDOperand RetVal;
     if (RetTyVT != MVT::isVoid) {
       switch (RetTyVT) {
@@ -591,9 +602,6 @@
       }
     }
 
-    Chain = DAG.getNode(ISD::CALLSEQ_END, MVT::Other, Chain,
-                        DAG.getConstant(NumBytes, getPointerTy()),
-                        DAG.getConstant(0, getPointerTy()));
     return std::make_pair(RetVal, Chain);
   } else {
     std::vector<SDOperand> Ops;
@@ -1049,6 +1057,17 @@
     Chain = DAG.getNode(X86ISD::CALL, NodeTys, Ops);
     InFlag = Chain.getValue(1);
 
+    NodeTys.clear();
+    NodeTys.push_back(MVT::Other);   // Returns a chain
+    NodeTys.push_back(MVT::Flag);    // Returns a flag for retval copy to use.
+    Ops.clear();
+    Ops.push_back(Chain);
+    Ops.push_back(DAG.getConstant(ArgOffset, getPointerTy()));
+    Ops.push_back(DAG.getConstant(ArgOffset, getPointerTy()));
+    Ops.push_back(InFlag);
+    Chain = DAG.getNode(ISD::CALLSEQ_END, NodeTys, Ops);
+    InFlag = Chain.getValue(1);
+    
     SDOperand RetVal;
     if (RetTyVT != MVT::isVoid) {
       switch (RetTyVT) {
@@ -1119,9 +1138,6 @@
       }
     }
 
-    Chain = DAG.getNode(ISD::CALLSEQ_END, MVT::Other, Chain,
-                        DAG.getConstant(ArgOffset, getPointerTy()),
-                        DAG.getConstant(ArgOffset, getPointerTy()));
     return std::make_pair(RetVal, Chain);
   } else {
     std::vector<SDOperand> Ops;
diff --git a/lib/Target/X86/X86InstrInfo.td b/lib/Target/X86/X86InstrInfo.td
index 04f8f16..aa149fc 100644
--- a/lib/Target/X86/X86InstrInfo.td
+++ b/lib/Target/X86/X86InstrInfo.td
@@ -88,7 +88,7 @@
                         [SDNPHasChain]>;
 def X86callseq_end :
                  SDNode<"ISD::CALLSEQ_END",   SDT_X86CallSeqEnd,
-                        [SDNPHasChain]>;
+                        [SDNPHasChain, SDNPInFlag, SDNPOutFlag]>;
 
 def X86call    : SDNode<"X86ISD::CALL",     SDT_X86Call,
                         [SDNPHasChain, SDNPOutFlag, SDNPOptInFlag]>;
