diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp
index c4d8c46..bc3f839 100644
--- a/lib/Target/CBackend/CBackend.cpp
+++ b/lib/Target/CBackend/CBackend.cpp
@@ -174,6 +174,7 @@
     void visitUnwindInst(UnwindInst &I) {
       assert(0 && "Lowerinvoke pass didn't work!");
     }
+    void visitUnreachableInst(UnreachableInst &I);
 
     void visitPHINode(PHINode &I);
     void visitBinaryOperator(Instruction &I);
@@ -521,6 +522,9 @@
                 << *CE << "\n";
       abort();
     }
+  } else if (isa<UndefValue>(CPV) && CPV->getType()->isFirstClassType()) {
+    Out << "0";
+    return;
   }
 
   switch (CPV->getType()->getTypeID()) {
@@ -606,7 +610,7 @@
   }
 
   case Type::ArrayTyID:
-    if (isa<ConstantAggregateZero>(CPV)) {
+    if (isa<ConstantAggregateZero>(CPV) || isa<UndefValue>(CPV)) {
       const ArrayType *AT = cast<ArrayType>(CPV->getType());
       Out << "{";
       if (AT->getNumElements()) {
@@ -625,7 +629,7 @@
     break;
 
   case Type::StructTyID:
-    if (isa<ConstantAggregateZero>(CPV)) {
+    if (isa<ConstantAggregateZero>(CPV) || isa<UndefValue>(CPV)) {
       const StructType *ST = cast<StructType>(CPV->getType());
       Out << "{";
       if (ST->getNumElements()) {
@@ -1205,6 +1209,10 @@
   Out << "  }\n";
 }
 
+void CWriter::visitUnreachableInst(UnreachableInst &I) {
+  Out << "  /*UNREACHABLE*/\n";
+}
+
 bool CWriter::isGotoCodeNecessary(BasicBlock *From, BasicBlock *To) {
   /// FIXME: This should be reenabled, but loop reordering safe!!
   return true;
diff --git a/lib/Target/CBackend/Writer.cpp b/lib/Target/CBackend/Writer.cpp
index c4d8c46..bc3f839 100644
--- a/lib/Target/CBackend/Writer.cpp
+++ b/lib/Target/CBackend/Writer.cpp
@@ -174,6 +174,7 @@
     void visitUnwindInst(UnwindInst &I) {
       assert(0 && "Lowerinvoke pass didn't work!");
     }
+    void visitUnreachableInst(UnreachableInst &I);
 
     void visitPHINode(PHINode &I);
     void visitBinaryOperator(Instruction &I);
@@ -521,6 +522,9 @@
                 << *CE << "\n";
       abort();
     }
+  } else if (isa<UndefValue>(CPV) && CPV->getType()->isFirstClassType()) {
+    Out << "0";
+    return;
   }
 
   switch (CPV->getType()->getTypeID()) {
@@ -606,7 +610,7 @@
   }
 
   case Type::ArrayTyID:
-    if (isa<ConstantAggregateZero>(CPV)) {
+    if (isa<ConstantAggregateZero>(CPV) || isa<UndefValue>(CPV)) {
       const ArrayType *AT = cast<ArrayType>(CPV->getType());
       Out << "{";
       if (AT->getNumElements()) {
@@ -625,7 +629,7 @@
     break;
 
   case Type::StructTyID:
-    if (isa<ConstantAggregateZero>(CPV)) {
+    if (isa<ConstantAggregateZero>(CPV) || isa<UndefValue>(CPV)) {
       const StructType *ST = cast<StructType>(CPV->getType());
       Out << "{";
       if (ST->getNumElements()) {
@@ -1205,6 +1209,10 @@
   Out << "  }\n";
 }
 
+void CWriter::visitUnreachableInst(UnreachableInst &I) {
+  Out << "  /*UNREACHABLE*/\n";
+}
+
 bool CWriter::isGotoCodeNecessary(BasicBlock *From, BasicBlock *To) {
   /// FIXME: This should be reenabled, but loop reordering safe!!
   return true;
