diff --git a/lib/ExecutionEngine/Interpreter/Execution.cpp b/lib/ExecutionEngine/Interpreter/Execution.cpp
index 9ad5aba..1f2d6f1 100644
--- a/lib/ExecutionEngine/Interpreter/Execution.cpp
+++ b/lib/ExecutionEngine/Interpreter/Execution.cpp
@@ -544,7 +544,7 @@
   case Type::LongTyID:    Result.LongVal = Ptr->LongVal; break;
   case Type::FloatTyID:   Result.FloatVal = Ptr->FloatVal; break;
   case Type::DoubleTyID:  Result.DoubleVal = Ptr->DoubleVal; break;
-  case Type::PointerTyID: Result.PointerVal = Ptr->PointerVal; break;
+  case Type::PointerTyID: Result.PointerVal =(GenericValue*)Ptr->LongVal; break;
   default:
     cout << "Cannot load value of type " << I->getType() << "!\n";
   }
diff --git a/lib/ExecutionEngine/Interpreter/Interpreter.h b/lib/ExecutionEngine/Interpreter/Interpreter.h
index d9a6834..5b12346 100644
--- a/lib/ExecutionEngine/Interpreter/Interpreter.h
+++ b/lib/ExecutionEngine/Interpreter/Interpreter.h
@@ -88,7 +88,7 @@
 
   // Hack until we can parse command line args...
   bool callMainMethod(const string &MainName,
-                      const string &InputFilename);
+                      const vector<string> &InputFilename);
 
   void list();             // Do the 'list' command
   void printStackTrace();  // Do the 'backtrace' command
diff --git a/lib/ExecutionEngine/Interpreter/UserInput.cpp b/lib/ExecutionEngine/Interpreter/UserInput.cpp
index 2989ae9..efe7150 100644
--- a/lib/ExecutionEngine/Interpreter/UserInput.cpp
+++ b/lib/ExecutionEngine/Interpreter/UserInput.cpp
@@ -212,12 +212,28 @@
   return false;
 }
 
+static void *CreateArgv(const vector<string> &InputArgv) {
+  // Pointers are 64 bits...
+  uint64_t *Result = new uint64_t[InputArgv.size()+1];
+
+  for (unsigned i = 0; i < InputArgv.size(); ++i) {
+    unsigned Size = InputArgv[i].size()+1;
+    char *Dest = new char[Size];
+    copy(InputArgv[i].begin(), InputArgv[i].end(), Dest);
+    Dest[Size-1] = 0;
+    Result[i] = (uint64_t)Dest;
+  }
+
+  Result[InputArgv.size()] = 0;
+  return Result;
+}
+
 
 // callMainMethod - This is a nasty gross hack that will dissapear when
 // callMethod can parse command line options and stuff for us.
 //
 bool Interpreter::callMainMethod(const string &Name,
-                                 const string &InputFilename) {
+                                 const vector<string> &InputArgv) {
   vector<Value*> Options = LookupMatchingNames(Name);
 
   for (unsigned i = 0; i < Options.size(); ++i) { // Remove nonmethod matches...
@@ -246,8 +262,8 @@
            << SPP->getDescription() << "'!\n";
       return true;
     }
-    // TODO:
-    GenericValue GV; GV.PointerVal = 0;
+
+    GenericValue GV; GV.PointerVal = (GenericValue*)CreateArgv(InputArgv);
     Args.push_back(GV);
   }
     // fallthrough
@@ -256,7 +272,7 @@
       cout << "First argument of '" << Name << "' should be integral!\n";
       return true;
     } else {
-      GenericValue GV; GV.IntVal = 1;
+      GenericValue GV; GV.UIntVal = InputArgv.size();
       Args.insert(Args.begin(), GV);
     }
     // fallthrough
