diff -Naur scribus-1.4.2/CMakeLists.txt scribus-1.4.2_HAIKU/CMakeLists.txt
--- scribus-1.4.2/CMakeLists.txt	2013-01-10 22:07:23.002359296 +0100
+++ scribus-1.4.2_HAIKU/CMakeLists.txt	2013-02-22 12:59:20.000000000 +0100
@@ -611,22 +611,6 @@
 ENDIF (OLDRENDERLIBLOST OR WANT_QTARTHUR OR RENDER_LIB STREQUAL "QTARTHUR" OR NOT RENDER_LIB)
 #>>Render Library
 
-#<<CUPS
-IF(NOT WIN32)
-  IF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 2.5)
-    SET(Cups_DIR ${CMAKE_MODULE_PATH})
-  ENDIF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 2.5)
-  FIND_PACKAGE(Cups REQUIRED)
-  IF(CUPS_FOUND)
-    SET(HAVE_CUPS 1)
-    MESSAGE("CUPS Library Found OK")
-  ENDIF(CUPS_FOUND)
-ELSE(NOT WIN32)
-  # Windows doesn't use CUPS
-  SET(CUPS_INCLUDE_DIR)
-ENDIF(NOT WIN32)
-#>>CUPS
-
 #<<LibXML2
 IF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 2.5)
   SET(LibXml2_DIR ${CMAKE_MODULE_PATH})
@@ -770,7 +754,6 @@
   ${CMAKE_BINARY_DIR}
   ${CMAKE_BINARY_DIR}/scribus
   ${QT_INCLUDES}
-  ${CUPS_INCLUDE_DIR}
   ${FREETYPE_INCLUDE_DIR}
   ${FONTCONFIG_INCLUDE_DIR}
   ${JPEG_INCLUDE_DIR}
diff -Naur scribus-1.4.2/scribus/CMakeLists.txt scribus-1.4.2_HAIKU/scribus/CMakeLists.txt
--- scribus-1.4.2/scribus/CMakeLists.txt	2012-06-07 22:01:10.002097152 +0200
+++ scribus-1.4.2_HAIKU/scribus/CMakeLists.txt	2013-02-22 12:59:47.000000000 +0100
@@ -765,7 +765,6 @@
 
 TARGET_LINK_LIBRARIES(${EXE_NAME}
   ${QT_LIBRARIES}
-  ${CUPS_LIBRARIES}
   ${FREETYPE_LIBRARIES}
   ${FONTCONFIG_LIBRARIES}
   ${LIBXML2_LIBRARIES}
diff -Naur scribus-1.4.2/scribus/printdialog.cpp scribus-1.4.2_HAIKU/scribus/printdialog.cpp
--- scribus-1.4.2/scribus/printdialog.cpp	2012-09-08 14:47:31.044302336 +0200
+++ scribus-1.4.2_HAIKU/scribus/printdialog.cpp	2013-02-23 20:34:48.045613056 +0100
@@ -21,11 +21,11 @@
 #include "prefsfile.h"
 #include "customfdialog.h"
 #include "cupsoptions.h"	
-#if defined(_WIN32)
+#if defined(WIN32)
 	#include <windows.h>
 	#include <winspool.h>
-#else
-	#include <cups.h>
+//#else
+//	#include <cups.h>
 #endif
 #include "util_printer.h"
 #include "util_icon.h"
@@ -136,7 +136,7 @@
 	connect( OptButton, SIGNAL( clicked() ), this, SLOT( SetOptions() ) );
 
 	setStoredValues(printOptions.filename, gcr);
-#if defined(_WIN32)
+#if defined(_HAIKU)
 	if (!outputToFile())
 	{
 		DevMode = printOptions.devMode;
@@ -176,7 +176,7 @@
 		             // the default values from the last succesful run
 	}
 
-#elif defined(_WIN32)
+#elif defined(_HAIKU)
 	bool done;
 	Qt::HANDLE handle = NULL;
 	// Retrieve the selected printer
@@ -303,7 +303,7 @@
 	LineEdit1->setEnabled(toFile);
 	ToolButton1->setEnabled(toFile);
 	OptButton->setEnabled(!toFile);
-#if defined(_WIN32)
+#if defined(_HAIKU)
 	if (!toFile)
 	{
 		if( !PrinterUtil::getDefaultSettings(PrintDest->currentText(), DevMode) )
diff -Naur scribus-1.4.2/scribus/scclocale.cpp scribus-1.4.2_HAIKU/scribus/scclocale.cpp
--- scribus-1.4.2/scribus/scclocale.cpp	2011-07-17 03:33:23.046661632 +0200
+++ scribus-1.4.2_HAIKU/scribus/scclocale.cpp	2013-02-20 12:45:54.000000000 +0100
@@ -24,7 +24,7 @@
 #if defined(Q_WS_WIN)
 	cLocale = _create_locale(LC_ALL, "C");
 #else
-  #if not defined(Q_OS_SOLARIS) and not defined(Q_OS_OPENBSD) and not defined (Q_OS_FREEBSD)
+  #if not defined(Q_OS_SOLARIS) and not defined(Q_OS_OPENBSD) and not defined (Q_OS_FREEBSD) and not defined (Q_OS_HAIKU)
 	cLocale = newlocale(LC_ALL_MASK, "C", NULL);
   #endif
 #endif
@@ -35,7 +35,7 @@
 #if defined(Q_WS_WIN)
 	_free_locale(cLocale);
 #else
-  #if not defined(Q_OS_SOLARIS) and not defined(Q_OS_OPENBSD) and not defined (Q_OS_FREEBSD)
+  #if not defined(Q_OS_SOLARIS) and not defined(Q_OS_OPENBSD) and not defined (Q_OS_FREEBSD) and not defined (Q_OS_HAIKU)
 	freelocale(cLocale);
   #endif
 #endif
@@ -110,7 +110,7 @@
 #if defined(Q_WS_WIN)
 		return _strtod_l(str, endptr, that()->cLocale);
 #else
-  #if defined(Q_OS_SOLARIS) or defined (Q_OS_OPENBSD) or defined (Q_OS_FREEBSD)
+  #if defined(Q_OS_SOLARIS) or defined (Q_OS_OPENBSD) or defined (Q_OS_FREEBSD) or defined (Q_OS_HAIKU)
 		char *oldlocale=setlocale(LC_NUMERIC, NULL);
 		double result(0.0);
 		setlocale(LC_NUMERIC, "C");
diff -Naur scribus-1.4.2/scribus/scclocale.h scribus-1.4.2_HAIKU/scribus/scclocale.h
--- scribus-1.4.2/scribus/scclocale.h	2010-08-17 21:18:35.059244544 +0200
+++ scribus-1.4.2_HAIKU/scribus/scclocale.h	2013-02-20 12:19:00.000000000 +0100
@@ -21,14 +21,14 @@
 #include <xlocale.h>
 #endif
 
-#if defined(Q_OS_SOLARIS) || defined (Q_OS_OPENBSD) || defined (Q_OS_FREEBSD)
+#if defined(Q_OS_SOLARIS) || defined (Q_OS_OPENBSD) || defined (Q_OS_FREEBSD) || defined (Q_OS_HAIKU)
 #include <locale.h>
 #endif
 
 #if defined(Q_WS_WIN)
 #define XLocaleType _locale_t
 #else
-  #if defined (Q_OS_SOLARIS) || defined (Q_OS_OPENBSD) || defined (Q_OS_FREEBSD)
+  #if defined (Q_OS_SOLARIS) || defined (Q_OS_OPENBSD) || defined (Q_OS_FREEBSD) || defined (Q_OS_HAIKU)
   #define XLocaleType char*   //dummy?
   #else
   #define XLocaleType locale_t
diff -Naur scribus-1.4.2/scribus/scpaths.cpp scribus-1.4.2_HAIKU/scribus/scpaths.cpp
--- scribus-1.4.2/scribus/scpaths.cpp	2012-06-24 15:39:34.051642368 +0200
+++ scribus-1.4.2_HAIKU/scribus/scpaths.cpp	2013-02-23 06:12:52.000000000 +0100
@@ -99,8 +99,8 @@
 	m_sampleScriptDir = QString("%1/Contents/share/scribus/samples/").arg(pathPtr);
 	m_scriptDir = QString("%1/Contents/share/scribus/scripts/").arg(pathPtr);
 	m_templateDir = QString("%1/Contents/share/scribus/templates/").arg(pathPtr);
-	m_libDir = QString("%1/Contents/lib/scribus/").arg(pathPtr);
-	m_pluginDir = QString("%1/Contents/lib/scribus/plugins/").arg(pathPtr);
+	m_libDir = QString("%1/Contents/share/lib/").arg(pathPtr);
+	m_pluginDir = QString("%1/Contents/share/plugins/").arg(pathPtr);
 	QApplication::setLibraryPaths(QStringList(QString("%1/Contents/lib/qtplugins/").arg(pathPtr)));
 //	CFRelease(pluginRef);
 //	CFRelease(macPath);
 	
diff -Naur scribus-1.4.2/scribus/scribus.cpp scribus-1.4.2_HAIKU/scribus/scribus.cpp
--- scribus-1.4.2/scribus/scribus.cpp	2012-12-31 10:23:05.052428800 +0100
+++ scribus-1.4.2_HAIKU/scribus/scribus.cpp	2013-02-20 18:45:27.000000000 +0100
@@ -4881,7 +4881,9 @@
 	doc->getUsedColors(usedSpots, true);
 	QStringList spots = usedSpots.keys();
 	PrintDialog *printer = new PrintDialog(this, doc, doc->Print_Options, prefsManager->appPrefs.GCRMode, spots);
+	#ifdef _HAIKU_
 	printer->setMinMax(1, doc->Pages->count(), doc->currentPage()->pageNr()+1);
+	#endif
 	printDinUse = true;
 	connect(printer, SIGNAL(doPreview()), this, SLOT(doPrintPreview()));
 	if (printer->exec())
@@ -4893,10 +4895,12 @@
 			doc->Print_Options.pageNumbers.push_back(doc->currentPage()->pageNr()+1);
 		else
 		{
+			#ifdef _HAIKU_
 			if (printer->doPrintAll())
 				parsePagesString("*", &doc->Print_Options.pageNumbers, doc->DocPages.count());
 			else
 				parsePagesString(printer->getPageString(), &doc->Print_Options.pageNumbers, doc->DocPages.count());
+				#endif
 		}
 		PrinterUsed = true;
 		done = doPrint(doc->Print_Options, printError);
diff -Naur scribus-1.4.2/scribus/util_printer.cpp scribus-1.4.2_HAIKU/scribus/util_printer.cpp
--- scribus-1.4.2/scribus/util_printer.cpp	2011-06-09 20:37:10.000786432 +0200
+++ scribus-1.4.2_HAIKU/scribus/util_printer.cpp	2013-02-22 13:42:52.000000000 +0100
@@ -8,8 +8,8 @@
 #include "scconfig.h"
 
 #if defined( HAVE_CUPS )
- #include <cups/cups.h>
- #include <cups/ppd.h>
+//#include <cups.h>
+//#include <ppd.h>
 #elif defined(_WIN32)
  #include <windows.h>
  #include <winspool.h>
@@ -54,25 +54,28 @@
 	if ( printerInfos) free(printerInfos);
 #else
 	QString tmp;
-	QString Pcap;
+
 	QStringList wt;
-	if (loadText("/etc/printcap", &Pcap))
+	
+	QByteArray printCap;
+	if (loadRawText("/etc/printcap", printCap))
+
 	{
-		QDataStream ts(&Pcap, QIODevice::ReadOnly);
-		while(!ts.atEnd())
-		{
-			tmp = readLinefromDataStream(ts);
-			if (tmp.isEmpty())
-				continue;
-			if ((tmp[0] != '#') && (tmp[0] != ' ') && (tmp[0] != '\n') && (tmp[0] != '\t'))
-			{
-				tmp = tmp.trimmed();
-				tmp = tmp.left(tmp.length() - (tmp.right(2) == ":\\" ? 2 : 1));
-				wt = tmp.split("|", QString::SkipEmptyParts);
-				printerName = wt[0];
-				printerNames.append(printerName);
-			}
-		}
+		//QDataStream ts(&printCap, QIODevice::ReadOnly);
+		//while(!ts.atEnd())
+		//{
+		//	tmp = readLinefromDataStream(ts);
+		//	if (tmp.isEmpty())
+		//		continue;
+		//	if ((tmp[0] != '#') && (tmp[0] != ' ') && (tmp[0] != '\n') && (tmp[0] != '\t'))
+		//	{
+		//		tmp = tmp.trimmed();
+		//		tmp = tmp.left(tmp.length() - (tmp.right(2) == ":\\" ? 2 : 1));
+		//		wt = tmp.split("|", QString::SkipEmptyParts);
+		//		printerName = wt[0];
+		//		printerNames.append(printerName);
+		//	}
+		//}
 	}
 #endif
 	return printerNames;
diff -Naur scribus-1.4.2/scribus/util.cpp scribus-1.4.2_HAIKU/scribus/util.cpp
--- scribus-1.4.2/scribus/util.cpp	2012-12-09 01:48:51.000000000 +0100
+++ scribus-1.4.2_HAIKU/scribus/util.cpp	2013-02-21 19:19:03.000000000 +0100
@@ -37,7 +37,7 @@
 
 #include <signal.h>
 
-#if !defined(_WIN32) && !defined(Q_OS_MAC) 
+#if !defined(_WIN32) && !defined(Q_OS_MAC) && !defined(Q_OS_HAIKU) 
 #include <execinfo.h>
 #include <cxxabi.h>
 #endif
@@ -946,7 +946,7 @@
  */
 void printBacktrace ( int nFrames )
 {
-#if !defined(_WIN32) && !defined(Q_OS_MAC) && !defined(Q_OS_OPENBSD)  && !defined(Q_OS_FREEBSD)
+#if !defined(_WIN32) && !defined(Q_OS_MAC) && !defined(Q_OS_OPENBSD)  && !defined(Q_OS_FREEBSD) && !defined(Q_OS_HAIKU)
 	void ** trace = new void*[nFrames + 1];
 	char **messages = ( char ** ) NULL;
 	int i, trace_size = 0;
