diff --git a/lib/Target/PowerPC/PPCAsmPrinter.cpp b/lib/Target/PowerPC/PPCAsmPrinter.cpp
index dab9b69..29853f1 100644
--- a/lib/Target/PowerPC/PPCAsmPrinter.cpp
+++ b/lib/Target/PowerPC/PPCAsmPrinter.cpp
@@ -18,7 +18,7 @@
 
 #define DEBUG_TYPE "asmprinter"
 #include "PowerPC.h"
-#include "PowerPCTargetMachine.h"
+#include "PPC32TargetMachine.h"
 #include "PowerPCSubtarget.h"
 #include "llvm/Constants.h"
 #include "llvm/DerivedTypes.h"
diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
index 1be28ec..2a0b626 100644
--- a/lib/Target/PowerPC/PPCTargetMachine.cpp
+++ b/lib/Target/PowerPC/PPCTargetMachine.cpp
@@ -12,7 +12,6 @@
 //===----------------------------------------------------------------------===//
 
 #include "PowerPC.h"
-#include "PowerPCTargetMachine.h"
 #include "PowerPCFrameInfo.h"
 #include "PPC32TargetMachine.h"
 #include "PPC32JITInfo.h"
diff --git a/lib/Target/PowerPC/PPCTargetMachine.h b/lib/Target/PowerPC/PPCTargetMachine.h
index 902abb0..91c1f1b 100644
--- a/lib/Target/PowerPC/PPCTargetMachine.h
+++ b/lib/Target/PowerPC/PPCTargetMachine.h
@@ -14,15 +14,37 @@
 #ifndef POWERPC32_TARGETMACHINE_H
 #define POWERPC32_TARGETMACHINE_H
 
-#include "PowerPCTargetMachine.h"
+#include "PowerPCFrameInfo.h"
+#include "PowerPCSubtarget.h"
 #include "PPC32JITInfo.h"
 #include "PPC32InstrInfo.h"
+#include "llvm/Target/TargetMachine.h"
+#include "llvm/Target/TargetFrameInfo.h"
 #include "llvm/PassManager.h"
 
 namespace llvm {
 
 class IntrinsicLowering;
+class GlobalValue;
+class IntrinsicLowering;
 
+// FIXME: Merge into only subclass.
+class PowerPCTargetMachine : public TargetMachine {
+  PowerPCFrameInfo  FrameInfo;
+  PPCSubtarget      Subtarget;
+protected:
+  PowerPCTargetMachine(const std::string &name, IntrinsicLowering *IL,
+                       const Module &M, const std::string &FS,
+                       const TargetData &TD, 
+                       const PowerPCFrameInfo &TFI);
+public:
+  virtual const TargetFrameInfo  *getFrameInfo() const { return &FrameInfo; }
+  virtual const TargetSubtarget  *getSubtargetImpl() const{ return &Subtarget; }
+  
+  virtual bool addPassesToEmitFile(PassManager &PM, std::ostream &Out,
+                                   CodeGenFileType FileType);
+};
+  
 class PPC32TargetMachine : public PowerPCTargetMachine {
   PPC32InstrInfo InstrInfo;
   PPC32JITInfo JITInfo;
diff --git a/lib/Target/PowerPC/PowerPCTargetMachine.h b/lib/Target/PowerPC/PowerPCTargetMachine.h
deleted file mode 100644
index 0c12f30..0000000
--- a/lib/Target/PowerPC/PowerPCTargetMachine.h
+++ /dev/null
@@ -1,46 +0,0 @@
-//===-- PowerPCTargetMachine.h - Define TargetMachine for PowerPC -*- C++ -*-=//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the PowerPC-specific subclass of TargetMachine.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef POWERPC_TARGETMACHINE_H
-#define POWERPC_TARGETMACHINE_H
-
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetFrameInfo.h"
-#include "llvm/PassManager.h"
-#include "PowerPCFrameInfo.h"
-#include "PowerPCSubtarget.h"
-
-namespace llvm {
-
-class GlobalValue;
-class IntrinsicLowering;
-
-class PowerPCTargetMachine : public TargetMachine {
-  PowerPCFrameInfo  FrameInfo;
-  PPCSubtarget      Subtarget;
-protected:
-  PowerPCTargetMachine(const std::string &name, IntrinsicLowering *IL,
-                       const Module &M, const std::string &FS,
-                       const TargetData &TD, 
-                       const PowerPCFrameInfo &TFI);
-public:
-  virtual const TargetFrameInfo  *getFrameInfo() const { return &FrameInfo; }
-  virtual const TargetSubtarget  *getSubtargetImpl() const{ return &Subtarget; }
-
-  virtual bool addPassesToEmitFile(PassManager &PM, std::ostream &Out,
-                                   CodeGenFileType FileType);
-};
-
-} // end namespace llvm
-
-#endif
