diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
index 610c898..71999b4 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+++ b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
@@ -4329,6 +4329,19 @@
           }
         }
 
+        // Check to see if there is an unaligned memcpy from/onto the stack. If
+        // so, then ignore it for the present.
+        if (Op1.getOpcode() == ISD::FrameIndex ||
+            Op2.getOpcode() == ISD::FrameIndex) {
+          unsigned TotalSize = 0;
+
+          for (unsigned i = 0; i < NumMemOps; i++)
+            TotalSize += MVT::getSizeInBits(MemOps[i]) / 8;
+
+          if (TotalSize % Align != 0)
+            break;
+        }
+
         for (unsigned i = 0; i < NumMemOps; i++) {
           MVT::ValueType VT = MemOps[i];
           unsigned VTSize = MVT::getSizeInBits(VT) / 8;
diff --git a/test/CodeGen/PowerPC/2007-10-23-UnalignedMemcpy.ll b/test/CodeGen/PowerPC/2007-10-23-UnalignedMemcpy.ll
new file mode 100644
index 0000000..c0cf201
--- /dev/null
+++ b/test/CodeGen/PowerPC/2007-10-23-UnalignedMemcpy.ll
@@ -0,0 +1,13 @@
+; RUN: llvm-as < %s | llc -mtriple=powerpc64-apple-darwin9 -o - | grep memcpy
+
+@C.0.1173 = external constant [33 x i8]         ; <[33 x i8]*> [#uses=1]
+
+define void @Bork() {
+entry:
+        %Qux = alloca [33 x i8]         ; <[33 x i8]*> [#uses=1]
+        %Qux1 = bitcast [33 x i8]* %Qux to i8*          ; <i8*> [#uses=1]
+        call void @llvm.memcpy.i64( i8* %Qux1, i8* getelementptr ([33 x i8]* @C.0.1173, i32 0, i32 0), i64 33, i32 8 )
+        ret void
+}
+
+declare void @llvm.memcpy.i64(i8*, i8*, i64, i32)
