diff --git a/macro/beamtime/camera_restore.C b/macro/beamtime/camera_restore.C
new file mode 100755
index 0000000000000000000000000000000000000000..48fa4f808d4176069f9204665377fd9e002f5536
--- /dev/null
+++ b/macro/beamtime/camera_restore.C
@@ -0,0 +1,30 @@
+/*
+void camera_restore(const char* fname, int mode = 0)
+{
+  TEveManager::Create();
+  writeCurrentCamera(fname);
+}
+*/
+
+void writeCurrentCamera(const char* fname)
+{
+  TGLCamera& c = gEve->GetDefaultGLViewer()->CurrentCamera();
+  TFile* f = TFile::Open(fname, "RECREATE");
+  c.Write();
+  f->Close();
+}
+
+
+void readCurrentCamera(const char* fname)
+{
+  TGLCamera& c = gEve->GetDefaultGLViewer()->CurrentCamera();
+  TFile* f = TFile::Open(fname, "READ");
+  if (!f) 
+    return;
+
+  if (f->GetKey(c.ClassName())) {
+    f->GetKey(c.ClassName())->Read(&c);
+    c.IncTimeStamp();
+    gEve->GetDefaultGLViewer()->RequestDraw();
+  }
+}