--- a/src/hugin1/PT/PanoCommand.h
+++ b/src/hugin1/PT/PanoCommand.h
@@ -411,6 +411,34 @@
     };
 
 
+    class UpdateOptimizeVectorCmd : public PanoCommand
+    {
+    public:
+        UpdateOptimizeVectorCmd(Panorama &p, OptimizeVector optvec)
+            : PanoCommand(p),
+              m_optvec(optvec)
+        { };
+
+    virtual bool processPanorama(Panorama & pano)
+        {
+            pano.setOptimizeVector(m_optvec);
+            pano.changeFinished();
+            return true;
+        }
+
+    virtual std::string getName() const
+        {
+            return "update optimize vector";
+        }
+
+    private:
+        OptimizeVector m_optvec;
+        int mode;
+
+    };
+        
+
+
     //=========================================================================
     //=========================================================================
 
@@ -1190,14 +1218,15 @@
     class LoadPTProjectCmd : public PanoCommand
     {
     public:
-        LoadPTProjectCmd(Panorama & p, std::istream & i, const std::string & prefix = "")
+        LoadPTProjectCmd(Panorama & p, const std::string  & filename, const std::string & prefix = "")
             : PanoCommand(p),
-              in(i),
-	      prefix(prefix)
+            filename(filename),
+            prefix(prefix)
             { }
 
         virtual bool processPanorama(Panorama& pano)
             {
+                std::ifstream in(filename.c_str());
 #ifndef _Hgn1_PANORAMA_H
                 PanoramaMemento newPano;
                 if (newPano.loadPTScript(in,prefix)) {
@@ -1213,6 +1242,7 @@
                 }
 #endif
                 
+                in.close();
                 pano.changeFinished();
 
                 return true;
@@ -1224,7 +1254,7 @@
             }
 
     private:
-        std::istream & in;
+        const std::string &filename;
         const std::string &prefix;
     };