--- dxflib/src/dl_writer_ascii.h.orig	2005-11-22 12:46:58.000000000 +0100
+++ dxflib/src/dl_writer_ascii.h	2010-08-05 23:56:19.000000000 +0200
@@ -50,7 +50,9 @@
 class DL_WriterA : public DL_Writer {
 public:
     DL_WriterA(char* fname, DL_Codes::version version=VER_2000)
-            : DL_Writer(version), m_ofile(fname) {}
+            : DL_Writer(version), m_ofile(fname) {
+      m_ofile.exceptions(std::ofstream::failbit);
+    }
     virtual ~DL_WriterA() {}
 
 	bool openFailed() const;
--- qcadlib/src/filters/rs_filterdxf.cpp.orig	2005-11-22 12:52:41.000000000 +0100
+++ qcadlib/src/filters/rs_filterdxf.cpp	2010-08-05 23:55:40.000000000 +0200
@@ -1187,6 +1187,7 @@
         exportVersion = DL_Codes::AC1015;
     }
 
+    try {
     //DL_WriterA* dw = dxf.out(file, VER_R12);
     DL_WriterA* dw = dxf.out((const char*)QFile::encodeName(file), exportVersion);
 
@@ -1376,6 +1377,10 @@
     dw->close();
 
     delete dw;
+    } catch (std::ios::failure &e) {
+        RS_DEBUG->print("RS_FilterDXF::fileExport: ios::failure exception caught");
+	return false;
+    }
 
     // check if file was actually written (strange world of windoze xp):
     if (RS_FileInfo(file).exists()==false) {
--- qcad/src/ts/qcad_en.ts.orig	2005-11-22 12:49:30.000000000 +0100
+++ qcad/src/ts/qcad_en.ts	2010-08-06 00:00:02.000000000 +0200
@@ -238,7 +238,8 @@
     <message>
         <source>Cannot save the file
 %1
-Please check the permissions.</source>
+Please check the permissions
+and filesystem status (full?).</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
--- qcad/src/ts/qcad_de.ts.orig	2005-11-22 12:49:31.000000000 +0100
+++ qcad/src/ts/qcad_de.ts	2010-08-06 00:00:53.000000000 +0200
@@ -319,10 +319,12 @@
     <message>
         <source>Cannot save the file
 %1
-Please check the permissions.</source>
+Please check the permissions
+and filesystem status (full?).</source>
         <translation>Kann Datei
 %1
-nicht speichern. Bitte prüfen Sie die Berechtigung.</translation>
+nicht speichern. Bitte prüfen Sie die Berechtigung
+sowie den Zustand des Dateisystems (voll?).</translation>
     </message>
     <message>
         <source>Help</source>
--- qcad/src/ts/qcad_cs.ts.orig	2005-11-22 12:49:30.000000000 +0100
+++ qcad/src/ts/qcad_cs.ts	2010-08-06 00:05:58.000000000 +0200
@@ -300,10 +300,12 @@
     <message>
         <source>Cannot save the file
 %1
-Please check the permissions.</source>
+Please check the permissions
+and filesystem status (full?).</source>
         <translation>Nelze uložit soubor
 %1
-Zkontrolujte prosím přístupová práva.</translation>
+Zkontrolujte prosím přístupová práva
+a místo na zařizení.</translation>
     </message>
     <message>
         <source>&amp;CAM</source>
--- qcad/src/ts/qcad_ru.ts.orig	2005-11-22 12:49:31.000000000 +0100
+++ qcad/src/ts/qcad_ru.ts	2010-08-06 00:08:18.000000000 +0200
@@ -288,10 +288,12 @@
     <message>
         <source>Cannot save the file
 %1
-Please check the permissions.</source>
+Please check the permissions
+and filesystem status (full?).</source>
         <translation>Невозможно сохранить файл
 %1
-Проверьте, пожалуйста, права доступа.</translation>
+Проверьте, пожалуйста, права доступа
+и свободное место на файлсистеме.</translation>
     </message>
     <message>
         <source>Launch the online manual</source>
--- qcad/src/qc_applicationwindow.cpp~	2010-08-05 23:41:32.000000000 +0200
+++ qcad/src/qc_applicationwindow.cpp	2010-08-05 23:59:26.000000000 +0200
@@ -2111,7 +2111,8 @@
                 // error
                 QMessageBox::information(this, QMessageBox::tr("Warning"),
                                          tr("Cannot save the file\n%1\nPlease "
-                                            "check the permissions.")
+                                            "check the permissions\n"
+					    "and filesystem status (full?).")
                                          .arg(w->getDocument()->getFilename()),
                                          QMessageBox::Ok);
             }
