diff --git a/lib/Analysis/DataStructure/BottomUpClosure.cpp b/lib/Analysis/DataStructure/BottomUpClosure.cpp
index a1f739c..02a9e64 100644
--- a/lib/Analysis/DataStructure/BottomUpClosure.cpp
+++ b/lib/Analysis/DataStructure/BottomUpClosure.cpp
@@ -16,13 +16,7 @@
 static RegisterAnalysis<BUDataStructures>
 X("budatastructure", "Bottom-up Data Structure Analysis Closure");
 
-namespace DataStructureAnalysis { // TODO: FIXME: Eliminate
-  // isPointerType - Return true if this first class type is big enough to hold
-  // a pointer.
-  //
-  bool isPointerType(const Type *Ty);
-}
-using namespace DataStructureAnalysis;
+using namespace DS;
 
 
 // releaseMemory - If the pass pipeline is done with this pass, we can release
diff --git a/lib/Analysis/DataStructure/DataStructure.cpp b/lib/Analysis/DataStructure/DataStructure.cpp
index 18192a1..ff2a4b8 100644
--- a/lib/Analysis/DataStructure/DataStructure.cpp
+++ b/lib/Analysis/DataStructure/DataStructure.cpp
@@ -20,14 +20,10 @@
   Statistic<> NumFolds("dsnode", "Number of nodes completely folded");
 };
 
-namespace DataStructureAnalysis {   // TODO: FIXME
-  // isPointerType - Return true if this first class type is big enough to hold
-  // a pointer.
-  //
-  bool isPointerType(const Type *Ty);
+namespace DS {   // TODO: FIXME
   extern TargetData TD;
 }
-using namespace DataStructureAnalysis;
+using namespace DS;
 
 //===----------------------------------------------------------------------===//
 // DSNode Implementation
diff --git a/lib/Analysis/DataStructure/Local.cpp b/lib/Analysis/DataStructure/Local.cpp
index bc2065e..b3195c2 100644
--- a/lib/Analysis/DataStructure/Local.cpp
+++ b/lib/Analysis/DataStructure/Local.cpp
@@ -30,12 +30,9 @@
 static RegisterAnalysis<LocalDataStructures>
 X("datastructure", "Local Data Structure Analysis");
 
-using namespace DataStructureAnalysis;
-
-namespace DataStructureAnalysis {
+namespace DS {
   // FIXME: Do something smarter with target data!
   TargetData TD("temp-td");
-  unsigned PointerSize(TD.getPointerSize());
 
   // isPointerType - Return true if this type is big enough to hold a pointer.
   bool isPointerType(const Type *Ty) {
@@ -46,6 +43,7 @@
     return false;
   }
 }
+using namespace DS;
 
 
 namespace {
diff --git a/lib/Analysis/DataStructure/TopDownClosure.cpp b/lib/Analysis/DataStructure/TopDownClosure.cpp
index cca6c16..69422ca 100644
--- a/lib/Analysis/DataStructure/TopDownClosure.cpp
+++ b/lib/Analysis/DataStructure/TopDownClosure.cpp
@@ -68,7 +68,7 @@
 
   for (unsigned i = 0, e = CallSite.getNumPtrArgs(); i != e; ++i, ++AI) {
     // Advance the argument iterator to the first pointer argument...
-    while (!DataStructureAnalysis::isPointerType(AI->getType())) ++AI;
+    while (!DS::isPointerType(AI->getType())) ++AI;
     
     // TD ...Merge the formal arg scalar with the actual arg node
     DSNodeHandle &NodeForFormal = Graph.getNodeForValue(AI);
