diff -urN -X psidiff.ignore sources/src/infodlg.cpp work/src/infodlg.cpp
--- sources/src/infodlg.cpp	2009-03-07 01:25:53.000000000 +0500
+++ work/src/infodlg.cpp	2009-03-07 01:53:03.000000000 +0500
@@ -96,6 +96,7 @@
 	connect(ui_.pb_refresh, SIGNAL(clicked()), this, SLOT(updateStatus()));
 	connect(ui_.te_desc, SIGNAL(textChanged()), this, SLOT(textChanged()));
 	connect(ui_.pb_open, SIGNAL(clicked()), this, SLOT(selectPhoto()));
+	connect(ui_.pb_save, SIGNAL(clicked()), this, SLOT(savePhoto()));
 	connect(ui_.pb_clear, SIGNAL(clicked()), this, SLOT(clearPhoto()));
 	connect(ui_.pb_close, SIGNAL(clicked()), this, SLOT(close()));
 
@@ -274,6 +275,7 @@
 		img_scaled = img;
 	}
 	ui_.label_photo->setPixmap(QPixmap(img_scaled));
+	ui_.pb_save->show();
 }
 
 void InfoDlg::fieldsEnable(bool x)
@@ -503,6 +505,26 @@
 }
 
 /**
+ * Opens a file browser dialog, and if selected, save photo from vcard
+*/
+void InfoDlg::savePhoto()
+{
+	if (!d->photo.isEmpty()) {
+		if (PsiOptions::instance()->getOption("options.ui.last-used-open-path").toString().isEmpty())
+			PsiOptions::instance()->getOption("options.ui.last-used-open-path").toString() = QDir::homeDirPath();
+		QString str=QFileDialog::getSaveFileName(this, tr("Save photo"), PsiOptions::instance()->getOption("options.ui.last-used-open-path").toString(), tr("Images (*.png *.xpm *.jpg *.PNG *.XPM *.JPG"));
+		if (!str.isEmpty())
+		{
+			QFileInfo fi(str);
+			PsiOptions::instance()->getOption("options.ui.last-used-open-path").toString()=fi.dirPath();
+			// Convert imge if required
+			QImage img(d->photo);
+			img.save(str);
+		}
+	}
+}
+
+/**
  * Loads the image from the requested URL, and inserts the resized image into the preview box.
  * \param path image file to load
 */
@@ -532,6 +554,7 @@
 	
 	// the picture changed, so notify there are some changes done
 	d->te_edited = true;
+	ui_.pb_save->hide();
 }
 
 /**
diff -urN -X psidiff.ignore sources/src/infodlg.h work/src/infodlg.h
--- sources/src/infodlg.h	2009-03-07 01:25:53.000000000 +0500
+++ work/src/infodlg.h	2009-03-07 01:53:03.000000000 +0500
@@ -63,6 +63,7 @@
 	void doSubmit();
 	void textChanged();
 	void selectPhoto();
+	void savePhoto();
 	void clearPhoto();
 
 private:
diff -urN -X psidiff.ignore sources/src/info.ui work/src/info.ui
--- sources/src/info.ui	2009-03-07 01:25:53.000000000 +0500
+++ work/src/info.ui	2009-03-07 01:53:03.000000000 +0500
@@ -160,6 +160,30 @@
             </widget>
            </item>
            <item>
+            <widget class="QPushButton" name="pb_save" >
+             <property name="sizePolicy" >
+              <sizepolicy>
+               <hsizetype>1</hsizetype>
+               <vsizetype>0</vsizetype>
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="text" >
+              <string>&amp;Save...</string>
+             </property>
+             <property name="shortcut" >
+              <string>Alt+S</string>
+             </property>
+             <property name="autoDefault" >
+              <bool>false</bool>
+             </property>
+             <property name="flat" >
+              <bool>false</bool>
+             </property>
+            </widget>
+           </item>
+           <item>
             <widget class="QPushButton" name="pb_clear" >
              <property name="sizePolicy" >
               <sizepolicy>
@@ -503,6 +527,7 @@
   <tabstop>le_homepage</tabstop>
   <tabstop>le_email</tabstop>
   <tabstop>pb_open</tabstop>
+  <tabstop>pb_save</tabstop>
   <tabstop>pb_clear</tabstop>
   <tabstop>pb_submit</tabstop>
   <tabstop>pb_refresh</tabstop>
