diff -u -d plugins/qt-gui/src/ewidgets.cpp plugins/qt-gui/src/ewidgets.cpp
--- plugins/qt-gui/src/ewidgets.cpp	Fri Feb 20 06:45:04 2004
+++ plugins/qt-gui/src/ewidgets.cpp	Sun Mar 14 18:29:33 2004
@@ -9,6 +9,7 @@
 #include <qbitmap.h>
 #include <qimage.h>
 #include <qtextcodec.h>
+#include <qfiledialog.h>
 #ifdef USE_KDE
 #include <kapp.h>
 #include <kmessagebox.h>
@@ -28,6 +29,7 @@
 #include "ewidgets.h"
 #include "usercodec.h"
 #include "usereventdlg.h"
+#include "licq_qt-gui.conf.h"
 
 using namespace std;
 
@@ -557,6 +559,24 @@
   m_nPPID = nPPID;
   mainwin = m;
 
+	char buf[MAX_FILENAME_LEN];
+	snprintf(buf, MAX_FILENAME_LEN, "%s/licq_qt-gui.conf", BASE_DIR);
+	buf[MAX_FILENAME_LEN - 1] = '\0';
+	char data[MAX_LINE_LEN];
+
+	CIniFile licqConf(INI_FxALLOWxCREATE | INI_FxWARN);
+	licqConf.LoadFile(buf);
+	licqConf.SetSection("background_pics");
+	if (licqConf.ReadStr(m_szId, data, "")) {
+		QBrush b;
+		QPixmap pix(data);
+		if (!pix.isNull()) {
+			b.setPixmap(pix);
+			setPaper(b);
+		}
+	}
+	licqConf.FlushFile();
+	licqConf.CloseFile();
 /*
   // add all unread messages.
   vector<CUserEvent*> newEventList;
@@ -605,6 +625,40 @@
     free(m_szId);
 }
 
+QPopupMenu *CMessageViewWidget::createPopupMenu ( const QPoint & pos )
+{
+	QPopupMenu *pop = CHistoryWidget::createPopupMenu(pos);
+	pop->insertItem(tr("Background image"), this, SLOT(loadBackgroundPic()));
+	return pop;
+}
+
+void CMessageViewWidget::loadBackgroundPic()
+{
+	QString s = QFileDialog::getOpenFileName( NULL,
+			"Images (*.png *.xpm *.jpg *.JPG)", this);
+	if (s.isNull()) return;
+
+	QPixmap pix(s);
+	if (!pix.isNull()) {
+		QBrush b;
+		b.setPixmap(pix);
+		setPaper(b);
+	}
+
+	char buf[MAX_FILENAME_LEN];
+	snprintf(buf, MAX_FILENAME_LEN, "%s/licq_qt-gui.conf", BASE_DIR);
+	buf[MAX_FILENAME_LEN - 1] = '\0';
+
+	CIniFile licqConf(INI_FxALLOWxCREATE | INI_FxWARN);
+	// need some more error checking here...
+	licqConf.LoadFile(buf);
+  
+	licqConf.SetSection("background_pics");
+	licqConf.WriteStr(m_szId, s);
+	licqConf.FlushFile();
+	licqConf.CloseFile();
+}
+
 void CMessageViewWidget::addMsg(ICQEvent * _e)
 {
   if (strcmp(_e->Id(), m_szId) == 0 && _e->PPID() == m_nPPID &&
diff -u -d plugins/qt-gui/src/ewidgets.h plugins/qt-gui/src/ewidgets.h
--- plugins/qt-gui/src/ewidgets.h	Tue Nov 11 06:45:04 2003
+++ plugins/qt-gui/src/ewidgets.h	Sun Mar 14 14:43:21 2004
@@ -132,6 +132,8 @@
   unsigned long m_nPPID;
   unsigned long m_nUin;
   CMainWindow *mainwin;
+protected:
+  QPopupMenu *createPopupMenu ( const QPoint & pos );
 public:
   CMessageViewWidget(const char *szId, unsigned long nPPID,
     CMainWindow *m, QWidget *parent = 0, const char *name = 0);
@@ -140,6 +142,7 @@
   virtual ~CMessageViewWidget();
 public slots:
   virtual void addMsg(CUserEvent *);
+  void loadBackgroundPic();
   void addMsg(ICQEvent *);
 };
