diff --git a/debian/patches/octave3.0.dpatch b/debian/patches/octave3.0.dpatch
--- /dev/null
@@ -0,0 +1,52 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## octave3.0.dpatch by Thomas Weber <thomas.weber.mail@gmail.com>
+##
+## DP: Changes required to switch to octave3.0.
+
+@DPATCH@
+
+--- a/src/octave/pfsopen.cpp
++++ b/src/octave/pfsopen.cpp
+@@ -54,8 +54,9 @@ DEFUN_DLD( pfsopen, args, , helpString)
+ return retval;
+ }
+
+- if( !args(0).is_string() && !args(0).is_stream() ) {
++ if( !args(0).is_string() && !args(0).is_real_scalar() ) {
+ error( SCRIPT_NAME ": expected file name or file descriptor as the first argument!");
++ // file descriptors are represented as integers (stored as doubles) in Octave 3.0
+ return retval;
+ }
+
+@@ -120,8 +121,7 @@ DEFUN_DLD( pfsopen, args, , helpString)
+ }
+ } else {
+ // File descriptor given
+- octave_stream fid = args(0).stream_value();
+- int fd = dup( fid.file_number() );
++ int fd = dup( (int) args(0).scalar_value() );
+ if( writeMode ) {
+ fh = fdopen( fd, "wb" );
+ if( fh == NULL ) {
+--- a/src/octave/pfsoctavelum
++++ b/src/octave/pfsoctavelum
+@@ -33,7 +33,7 @@ if( length( argv ) != 1 )
+ error( "Expecting exactly one parameter with octave code to be execuded" );
+ endif
+
+-command = argv{1};
++command = argv(){1};
+
+ ## Add missing ';'
+ if( command(length(command)) != ";" )
+--- a/src/octave/pfsoctavergb
++++ b/src/octave/pfsoctavergb
+@@ -33,7 +33,7 @@ if( length( argv ) != 1 )
+ error( "Expecting exactly one parameter with octave code to be execuded" );
+ endif
+
+-command = argv{1};
++command = argv(){1};
+
+ ## Add missing ';'
+ if( command(length(command)) != ";" )