diff --git a/ChangeLog b/ChangeLog
index b7a4f213..58b150f1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -16167,3 +16167,6 @@
 	rdimport(1).
 2017-10-16 Fred Gleason <fredg@paravelsystems.com>
 	* Updated 'NEWS'.
+2017-10-17 Fred Gleason <fredg@paravelsystems.com>
+	* Added sane defaults when processing '%k','%K', '%q' and '%Q'
+	wildcards in rdimport(1).
diff --git a/docs/docbook/rdimport.xml b/docs/docbook/rdimport.xml
index 66da8e55..ba2af43c 100644
--- a/docs/docbook/rdimport.xml
+++ b/docs/docbook/rdimport.xml
@@ -348,8 +348,18 @@
 	  <varlistentry>
 	    <term><userinput>%q</userinput></term>
 	    <listitem>
-	      <para>Date component of the cut start date/time, in
-	      format <userinput>YYYY-MM-DD</userinput></para>
+	      <para>
+		Date component of the cut start date/time, in
+		format <userinput>YYYY-MM-DD</userinput>. If the
+		<userinput>%Q</userinput> wildcard has not also been provided,
+		the end date will be assumed to be the same as the start date.
+		If the <userinput>%k</userinput> wildcard has not been
+		provided, a start time of
+		<userinput>00:00:00</userinput> will
+		be assumed, while if the <userinput>%K</userinput> wildcard
+		has not	been provided, an end time of
+		<userinput>23:59:59</userinput> will be assumed.
+	      </para>
 	    </listitem>
 	  </varlistentry>
 
@@ -357,7 +367,11 @@
 	    <term><userinput>%Q</userinput></term>
 	    <listitem>
 	      <para>Date component of the cut end date/time, in
-	      format <userinput>YYYY-MM-DD</userinput></para>
+	      format <userinput>YYYY-MM-DD</userinput>.
+	      If the <userinput>%K</userinput> wildcard
+	      has not been provided, an end time of
+	      <userinput>23:59:59</userinput> will be assumed.
+	      </para>
 	    </listitem>
 	  </varlistentry>
 
diff --git a/utils/rdimport/rdimport.cpp b/utils/rdimport/rdimport.cpp
index 24f651fd..a00be01c 100644
--- a/utils/rdimport/rdimport.cpp
+++ b/utils/rdimport/rdimport.cpp
@@ -1658,6 +1658,9 @@ bool MainObject::RunPattern(const QString &pattern,const QString &filename,
   QString value;
   QChar delimiter;
   bool found_cartnum=false;
+  bool found_end_date=false;
+  bool found_start_time=false;
+  bool found_end_time=false;
   QTime time;
   QDate date;
 
@@ -1713,6 +1716,7 @@ bool MainObject::RunPattern(const QString &pattern,const QString &filename,
 	  time=QTime::fromString(value);
 	  if(time.isValid()) {
 	    wavedata->setStartTime(time);
+	    found_start_time=true;
 	    wavedata->setMetadataFound(true);
 	  }
 	  break;
@@ -1721,6 +1725,7 @@ bool MainObject::RunPattern(const QString &pattern,const QString &filename,
 	  time=QTime::fromString(value);
 	  if(time.isValid()) {
 	    wavedata->setEndTime(time);
+	    found_end_time=true;
 	    wavedata->setMetadataFound(true);
 	  }
 	  break;
@@ -1756,6 +1761,15 @@ bool MainObject::RunPattern(const QString &pattern,const QString &filename,
 	  if(date.isValid()) {
 	    wavedata->setStartDate(date);
 	    wavedata->setMetadataFound(true);
+	    if(!found_end_date) {
+	      wavedata->setEndDate(date);
+	      if(!found_end_time) {
+		wavedata->setEndTime(QTime(23,59,59));
+	      }
+	    }
+	    if(!found_start_time) {
+	      wavedata->setStartTime(QTime(0,0,0,1));
+	    }
 	  }
 	  break;
 
@@ -1763,7 +1777,11 @@ bool MainObject::RunPattern(const QString &pattern,const QString &filename,
 	  date=QDate::fromString(value,Qt::ISODate);
 	  if(date.isValid()) {
 	    wavedata->setEndDate(date);
+	    found_end_date=true;
 	    wavedata->setMetadataFound(true);
+	    if(!found_end_time) {
+	      wavedata->setEndTime(QTime(23,59,59));
+	    }
 	  }
 	  break;